diff options
| author | Peter Collingbourne <peter@pcc.me.uk> | 2018-05-21 18:17:42 +0000 |
|---|---|---|
| committer | Peter Collingbourne <peter@pcc.me.uk> | 2018-05-21 18:17:42 +0000 |
| commit | f17b149d8cb5abd2f9a02ad5addf9e9500114d8c (patch) | |
| tree | bbd83f9702f2d373b7a6de77a3c118d6f73623bb /llvm/tools | |
| parent | 168d04d54442bab614c50911cce501cc5901d612 (diff) | |
| download | bcm5719-llvm-f17b149d8cb5abd2f9a02ad5addf9e9500114d8c.tar.gz bcm5719-llvm-f17b149d8cb5abd2f9a02ad5addf9e9500114d8c.zip | |
MC: Change object writers to use endian::Writer. NFCI.
Part of PR37466.
Differential Revision: https://reviews.llvm.org/D47040
llvm-svn: 332861
Diffstat (limited to 'llvm/tools')
| -rw-r--r-- | llvm/tools/dsymutil/MachOUtils.cpp | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/llvm/tools/dsymutil/MachOUtils.cpp b/llvm/tools/dsymutil/MachOUtils.cpp index 9d100bfeab0..cd9fbe09cfc 100644 --- a/llvm/tools/dsymutil/MachOUtils.cpp +++ b/llvm/tools/dsymutil/MachOUtils.cpp @@ -225,7 +225,7 @@ getSection(const object::MachOObjectFile &Obj, template <typename SegmentTy> static void transferSegmentAndSections( const object::MachOObjectFile::LoadCommandInfo &LCI, SegmentTy Segment, - const object::MachOObjectFile &Obj, MCObjectWriter &Writer, + const object::MachOObjectFile &Obj, MachObjectWriter &Writer, uint64_t LinkeditOffset, uint64_t LinkeditSize, uint64_t DwarfSegmentSize, uint64_t &GapForDwarf, uint64_t &EndAddress) { if (StringRef("__DWARF") == Segment.segname) @@ -255,14 +255,13 @@ static void transferSegmentAndSections( unsigned nsects = Segment.nsects; if (Obj.isLittleEndian() != sys::IsLittleEndianHost) MachO::swapStruct(Segment); - Writer.writeBytes( - StringRef(reinterpret_cast<char *>(&Segment), sizeof(Segment))); + Writer.W.OS.write(reinterpret_cast<char *>(&Segment), sizeof(Segment)); for (unsigned i = 0; i < nsects; ++i) { auto Sect = getSection(Obj, Segment, LCI, i); Sect.offset = Sect.reloff = Sect.nreloc = 0; if (Obj.isLittleEndian() != sys::IsLittleEndianHost) MachO::swapStruct(Sect); - Writer.writeBytes(StringRef(reinterpret_cast<char *>(&Sect), sizeof(Sect))); + Writer.W.OS.write(reinterpret_cast<char *>(&Sect), sizeof(Sect)); } } @@ -429,10 +428,9 @@ bool generateDsymCompanion(const DebugMap &DM, MCStreamer &MS, // Write the load commands. assert(OutFile.tell() == HeaderSize); if (UUIDCmd.cmd != 0) { - Writer.write32(UUIDCmd.cmd); - Writer.write32(UUIDCmd.cmdsize); - Writer.writeBytes( - StringRef(reinterpret_cast<const char *>(UUIDCmd.uuid), 16)); + Writer.W.write<uint32_t>(UUIDCmd.cmd); + Writer.W.write<uint32_t>(UUIDCmd.cmdsize); + OutFile.write(reinterpret_cast<const char *>(UUIDCmd.uuid), 16); assert(OutFile.tell() == HeaderSize + sizeof(UUIDCmd)); } @@ -479,12 +477,12 @@ bool generateDsymCompanion(const DebugMap &DM, MCStreamer &MS, NumDwarfSections, Layout, Writer); assert(OutFile.tell() == LoadCommandSize + HeaderSize); - Writer.WriteZeros(SymtabStart - (LoadCommandSize + HeaderSize)); + OutFile.write_zeros(SymtabStart - (LoadCommandSize + HeaderSize)); assert(OutFile.tell() == SymtabStart); // Transfer symbols. if (ShouldEmitSymtab) { - Writer.writeBytes(NewSymtab.str()); + OutFile << NewSymtab.str(); assert(OutFile.tell() == StringStart); // Transfer string table. @@ -492,21 +490,20 @@ bool generateDsymCompanion(const DebugMap &DM, MCStreamer &MS, // dsymutil-classic starts the reconstructed string table with 2 of these. // Reproduce that behavior for now (there is corresponding code in // transferSymbol). - Writer.WriteZeros(1); + OutFile << '\0'; std::vector<DwarfStringPoolEntryRef> Strings = NewStrings.getEntries(); for (auto EntryRef : Strings) { if (EntryRef.getIndex() == -1U) break; - StringRef ZeroTerminated(EntryRef.getString().data(), - EntryRef.getString().size() + 1); - Writer.writeBytes(ZeroTerminated); + OutFile.write(EntryRef.getString().data(), + EntryRef.getString().size() + 1); } } assert(OutFile.tell() == StringStart + NewStringsSize); // Pad till the Dwarf segment start. - Writer.WriteZeros(DwarfSegmentStart - (StringStart + NewStringsSize)); + OutFile.write_zeros(DwarfSegmentStart - (StringStart + NewStringsSize)); assert(OutFile.tell() == DwarfSegmentStart); // Emit the Dwarf sections contents. @@ -515,7 +512,7 @@ bool generateDsymCompanion(const DebugMap &DM, MCStreamer &MS, continue; uint64_t Pos = OutFile.tell(); - Writer.WriteZeros(alignTo(Pos, Sec.getAlignment()) - Pos); + OutFile.write_zeros(alignTo(Pos, Sec.getAlignment()) - Pos); MCAsm.writeSectionData(OutFile, &Sec, Layout); } |

