diff options
Diffstat (limited to 'llvm/tools/llvm-objcopy/COFF/Writer.cpp')
-rw-r--r-- | llvm/tools/llvm-objcopy/COFF/Writer.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/llvm/tools/llvm-objcopy/COFF/Writer.cpp b/llvm/tools/llvm-objcopy/COFF/Writer.cpp index 4f57131d5ab..5ea3707e971 100644 --- a/llvm/tools/llvm-objcopy/COFF/Writer.cpp +++ b/llvm/tools/llvm-objcopy/COFF/Writer.cpp @@ -286,14 +286,15 @@ void COFFWriter::writeHeaders(bool IsBigObj) { void COFFWriter::writeSections() { for (const auto &S : Obj.getSections()) { uint8_t *Ptr = Buf.getBufferStart() + S.Header.PointerToRawData; - std::copy(S.Contents.begin(), S.Contents.end(), Ptr); + ArrayRef<uint8_t> Contents = S.getContents(); + std::copy(Contents.begin(), Contents.end(), Ptr); // For executable sections, pad the remainder of the raw data size with // 0xcc, which is int3 on x86. if ((S.Header.Characteristics & IMAGE_SCN_CNT_CODE) && - S.Header.SizeOfRawData > S.Contents.size()) - memset(Ptr + S.Contents.size(), 0xcc, - S.Header.SizeOfRawData - S.Contents.size()); + S.Header.SizeOfRawData > Contents.size()) + memset(Ptr + Contents.size(), 0xcc, + S.Header.SizeOfRawData - Contents.size()); Ptr += S.Header.SizeOfRawData; for (const auto &R : S.Relocs) { |