1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00

[llvm-pdbdump] [yaml2pdb] always include object file name in module info

Summary:
Previously, the yaml2pdb subcommand of llvm-pdbdump only
included object file names in module info if a module info stream was
present. This change makes it so that we include the object file name
even if there is no module info stream for the module. As a result,
running
llvm-pdbdump pdb2yaml -dbi-module-info original.pdb > original.yaml &&
llvm-pdbdump yaml2pdb -pdb=new.pdb original.yaml && llvm-pdbdump
pdb2yaml -dbi-module-info new.pdb > new.yaml now produces identical
original.yaml and new.yaml files.

Reviewers: amccarth, zturner

Reviewed By: zturner

Subscribers: fhahn, llvm-commits

Differential Revision: https://reviews.llvm.org/D33463

llvm-svn: 303891
This commit is contained in:
Bob Haarman 2017-05-25 18:04:17 +00:00
parent e0a5735dce
commit 3d5da45928
2 changed files with 15 additions and 1 deletions

View File

@ -0,0 +1,14 @@
# RUN: llvm-pdbdump yaml2pdb -pdb=%T/objfilename.pdb %s
# RUN: llvm-pdbdump pdb2yaml -dbi-module-info %T/objfilename.pdb \
# RUN: | FileCheck %s
#
# CHECK: DbiStream:
# CHECK: Modules:
# CHECK-NEXT: - Module:{{ *}}'C:\src\test.obj'
# CHECK-NEXT: ObjFile:{{ *}}'C:\src\test.obj'
---
DbiStream:
Modules:
- Module: 'C:\src\test.obj'
ObjFile: 'C:\src\test.obj'
...

View File

@ -525,12 +525,12 @@ static void yamlToPdb(StringRef Path) {
DbiBuilder.setVersionHeader(Dbi.VerHeader);
for (const auto &MI : Dbi.ModInfos) {
auto &ModiBuilder = ExitOnErr(DbiBuilder.addModuleInfo(MI.Mod));
ModiBuilder.setObjFileName(MI.Obj);
for (auto S : MI.SourceFiles)
ExitOnErr(DbiBuilder.addModuleSourceFile(MI.Mod, S));
if (MI.Modi.hasValue()) {
const auto &ModiStream = *MI.Modi;
ModiBuilder.setObjFileName(MI.Obj);
for (auto Symbol : ModiStream.Symbols)
ModiBuilder.addSymbol(Symbol.Record);
}