diff options
Diffstat (limited to 'llvm/tools/llvm-objcopy/COFF/Writer.cpp')
-rw-r--r-- | llvm/tools/llvm-objcopy/COFF/Writer.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/tools/llvm-objcopy/COFF/Writer.cpp b/llvm/tools/llvm-objcopy/COFF/Writer.cpp index e32bf6832d9..385d43b1bae 100644 --- a/llvm/tools/llvm-objcopy/COFF/Writer.cpp +++ b/llvm/tools/llvm-objcopy/COFF/Writer.cpp @@ -46,8 +46,9 @@ void COFFWriter::layoutSections() { S.Header.PointerToRawData = FileSize; FileSize += S.Header.SizeOfRawData; // For executables, this is already // aligned to FileAlignment. - if (S.Header.NumberOfRelocations > 0) - S.Header.PointerToRelocations = FileSize; + S.Header.NumberOfRelocations = S.Relocs.size(); + S.Header.PointerToRelocations = + S.Header.NumberOfRelocations > 0 ? FileSize : 0; FileSize += S.Relocs.size() * sizeof(coff_relocation); FileSize = alignTo(FileSize, FileAlignment); |