diff --git a/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp b/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp index f6c8b60643b9..703b970b664f 100644 --- a/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp +++ b/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp @@ -566,20 +566,18 @@ private: // there's no technical reason to do so, but we'll follow that convention // so that we don't produce odd-looking binary. We should update the code // (or this comment) once we figure the reason out. - uint32_t offset = PAGE_SIZE; - uint32_t va = offset; + uint32_t rva = PAGE_SIZE; for (auto &cp : _chunks) { if (SectionChunk *chunk = dyn_cast(&*cp)) { - chunk->setVirtualAddress(va); - + chunk->setVirtualAddress(rva); // Skip the empty section. if (chunk->size() == 0) continue; numSections++; - va = llvm::RoundUpToAlignment(va + chunk->size(), PAGE_SIZE); + rva = llvm::RoundUpToAlignment(rva + chunk->size(), PAGE_SIZE); } } - imageSize = va - offset; + imageSize = rva; } /// Apply relocations to the output file buffer. This two pass. In the first diff --git a/lld/test/pecoff/trivial.test b/lld/test/pecoff/trivial.test index 2a19db869714..ad314f6b3fe7 100644 --- a/lld/test/pecoff/trivial.test +++ b/lld/test/pecoff/trivial.test @@ -39,7 +39,7 @@ FILE: MajorImageVersion: 0 FILE: MinorImageVersion: 0 FILE: MajorSubsystemVersion: 3 FILE: MinorSubsystemVersion: 11 -FILE: SizeOfImage: 4096 +FILE: SizeOfImage: 8192 FILE: SizeOfHeaders: 512 FILE: Subsystem: IMAGE_SUBSYSTEM_WINDOWS_CUI (0x3) FILE: Subsystem [ (0x8540)