summaryrefslogtreecommitdiffstats
path: root/llvm/tools
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2018-05-21 18:17:42 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2018-05-21 18:17:42 +0000
commitf17b149d8cb5abd2f9a02ad5addf9e9500114d8c (patch)
treebbd83f9702f2d373b7a6de77a3c118d6f73623bb /llvm/tools
parent168d04d54442bab614c50911cce501cc5901d612 (diff)
downloadbcm5719-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.cpp29
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);
}
OpenPOWER on IntegriCloud