summaryrefslogtreecommitdiff
path: root/tools/llvm-pdbdump/llvm-pdbdump.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/llvm-pdbdump/llvm-pdbdump.cpp')
-rw-r--r--tools/llvm-pdbdump/llvm-pdbdump.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/tools/llvm-pdbdump/llvm-pdbdump.cpp b/tools/llvm-pdbdump/llvm-pdbdump.cpp
index baba862ae663f..0b2b766a3c52f 100644
--- a/tools/llvm-pdbdump/llvm-pdbdump.cpp
+++ b/tools/llvm-pdbdump/llvm-pdbdump.cpp
@@ -476,6 +476,7 @@ static void yamlToPdb(StringRef Path) {
std::unique_ptr<MemoryBuffer> &Buffer = ErrorOrBuffer.get();
llvm::yaml::Input In(Buffer->getBuffer());
+ In.setContext(&Allocator);
pdb::yaml::PdbObject YamlObj(Allocator);
In >> YamlObj;
@@ -535,7 +536,7 @@ static void yamlToPdb(StringRef Path) {
if (MI.Modi.hasValue()) {
const auto &ModiStream = *MI.Modi;
for (auto Symbol : ModiStream.Symbols)
- ModiBuilder.addSymbol(Symbol.Record);
+ ModiBuilder.addSymbol(Symbol.toCodeViewSymbol(Allocator));
}
if (MI.FileLineInfo.hasValue()) {
const auto &FLI = *MI.FileLineInfo;
@@ -584,7 +585,7 @@ static void yamlToPdb(StringRef Path) {
auto Inlinees = llvm::make_unique<DebugInlineeLinesSubsection>(
ChecksumRef, Inlinee.HasExtraFiles);
for (const auto &Site : Inlinee.Sites) {
- Inlinees->addInlineSite(Site.Inlinee, Site.FileName,
+ Inlinees->addInlineSite(TypeIndex(Site.Inlinee), Site.FileName,
Site.SourceLineNum);
if (!Inlinee.HasExtraFiles)
continue;
@@ -601,14 +602,18 @@ static void yamlToPdb(StringRef Path) {
auto &TpiBuilder = Builder.getTpiBuilder();
const auto &Tpi = YamlObj.TpiStream.getValueOr(DefaultTpiStream);
TpiBuilder.setVersionHeader(Tpi.Version);
- for (const auto &R : Tpi.Records)
- TpiBuilder.addTypeRecord(R.Record.data(), R.Record.Hash);
+ for (const auto &R : Tpi.Records) {
+ CVType Type = R.toCodeViewRecord(Allocator);
+ TpiBuilder.addTypeRecord(Type.RecordData, None);
+ }
const auto &Ipi = YamlObj.IpiStream.getValueOr(DefaultIpiStream);
auto &IpiBuilder = Builder.getIpiBuilder();
IpiBuilder.setVersionHeader(Ipi.Version);
- for (const auto &R : Ipi.Records)
- IpiBuilder.addTypeRecord(R.Record.data(), R.Record.Hash);
+ for (const auto &R : Ipi.Records) {
+ CVType Type = R.toCodeViewRecord(Allocator);
+ IpiBuilder.addTypeRecord(Type.RecordData, None);
+ }
ExitOnErr(Builder.commit(opts::yaml2pdb::YamlPdbOutputFile));
}