diff options
Diffstat (limited to 'llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp')
-rw-r--r-- | llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp b/llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp index 41cb23a188f..f994b4538ef 100644 --- a/llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp +++ b/llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp @@ -161,7 +161,7 @@ Error DbiModuleDescriptorBuilder::commit(BinaryStreamWriter &ModiWriter, return Error::success(); } -void DbiModuleDescriptorBuilder::addC13LineFragment( +void DbiModuleDescriptorBuilder::addC13Fragment( std::unique_ptr<ModuleDebugLineFragment> Lines) { ModuleDebugLineFragment &Frag = *Lines; @@ -175,6 +175,20 @@ void DbiModuleDescriptorBuilder::addC13LineFragment( llvm::make_unique<ModuleDebugFragmentRecordBuilder>(Frag.kind(), Frag)); } +void DbiModuleDescriptorBuilder::addC13Fragment( + std::unique_ptr<codeview::ModuleDebugInlineeLineFragment> Inlinees) { + ModuleDebugInlineeLineFragment &Frag = *Inlinees; + + // File Checksums have to come first, so push an empty entry on if this + // is the first. + if (C13Builders.empty()) + C13Builders.push_back(nullptr); + + this->Inlinees.push_back(std::move(Inlinees)); + C13Builders.push_back( + llvm::make_unique<ModuleDebugFragmentRecordBuilder>(Frag.kind(), Frag)); +} + void DbiModuleDescriptorBuilder::setC13FileChecksums( std::unique_ptr<ModuleDebugFileChecksumFragment> Checksums) { assert(!ChecksumInfo && "Can't have more than one checksum info!"); |