diff options
-rw-r--r-- | lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp | 4 | ||||
-rw-r--r-- | lld/test/pecoff/peplus.test | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp b/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp index 83457ac8597..a0760fbeca0 100644 --- a/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp +++ b/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp @@ -322,8 +322,8 @@ PEHeaderChunk<PEHeader>::PEHeaderChunk(const PECOFFLinkingContext &ctx) _coffHeader.Machine = ctx.getMachineType(); _coffHeader.TimeDateStamp = time(nullptr); - // The size of PE header including optional data directory is always 224. - _coffHeader.SizeOfOptionalHeader = 224; + // The size of PE header including optional data directory. + _coffHeader.SizeOfOptionalHeader = ctx.is64Bit() ? 240 : 224; // Attributes of the executable. uint16_t characteristics = llvm::COFF::IMAGE_FILE_32BIT_MACHINE | diff --git a/lld/test/pecoff/peplus.test b/lld/test/pecoff/peplus.test index 0d7bdc00206..b3717ce53ae 100644 --- a/lld/test/pecoff/peplus.test +++ b/lld/test/pecoff/peplus.test @@ -11,7 +11,7 @@ CHECK-NEXT: SectionCount: 3 CHECK-NEXT: TimeDateStamp: CHECK-NEXT: PointerToSymbolTable: 0x0 CHECK-NEXT: SymbolCount: 0 -CHECK-NEXT: OptionalHeaderSize: 224 +CHECK-NEXT: OptionalHeaderSize: 240 CHECK-NEXT: Characteristics [ (0x102) CHECK-NEXT: IMAGE_FILE_32BIT_MACHINE (0x100) CHECK-NEXT: IMAGE_FILE_EXECUTABLE_IMAGE (0x2) |