diff options
Diffstat (limited to 'llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp')
-rw-r--r-- | llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp b/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp index 0e00c2f7ff98..627aef7506fd 100644 --- a/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp +++ b/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp @@ -58,10 +58,6 @@ void DbiStreamBuilder::setMachineType(COFF::MachineTypes M) { MachineType = static_cast<pdb::PDB_Machine>(static_cast<unsigned>(M)); } -void DbiStreamBuilder::setSectionMap(ArrayRef<SecMapEntry> SecMap) { - SectionMap = SecMap; -} - void DbiStreamBuilder::setGlobalsStreamIndex(uint32_t Index) { GlobalsStreamIndex = Index; } @@ -348,19 +344,18 @@ static uint16_t toSecMapFlags(uint32_t Flags) { return Ret; } -// A utility function to create a Section Map for a given list of COFF sections. +// Populate the Section Map from COFF section headers. // // A Section Map seem to be a copy of a COFF section list in other format. // I don't know why a PDB file contains both a COFF section header and // a Section Map, but it seems it must be present in a PDB. -std::vector<SecMapEntry> DbiStreamBuilder::createSectionMap( +void DbiStreamBuilder::createSectionMap( ArrayRef<llvm::object::coff_section> SecHdrs) { - std::vector<SecMapEntry> Ret; int Idx = 0; auto Add = [&]() -> SecMapEntry & { - Ret.emplace_back(); - auto &Entry = Ret.back(); + SectionMap.emplace_back(); + auto &Entry = SectionMap.back(); memset(&Entry, 0, sizeof(Entry)); Entry.Frame = Idx + 1; @@ -384,8 +379,6 @@ std::vector<SecMapEntry> DbiStreamBuilder::createSectionMap( Entry.Flags = static_cast<uint16_t>(OMFSegDescFlags::AddressIs32Bit) | static_cast<uint16_t>(OMFSegDescFlags::IsAbsoluteAddress); Entry.SecByteLength = UINT32_MAX; - - return Ret; } Error DbiStreamBuilder::commit(const msf::MSFLayout &Layout, @@ -417,7 +410,7 @@ Error DbiStreamBuilder::commit(const msf::MSFLayout &Layout, SecMapHeader SMHeader = {Size, Size}; if (auto EC = Writer.writeObject(SMHeader)) return EC; - if (auto EC = Writer.writeArray(SectionMap)) + if (auto EC = Writer.writeArray(makeArrayRef(SectionMap))) return EC; } |