[llvm] r346010 - Fix a few small issues in llvm-pdbutil

Leonard Mosescu via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 2 11:00:37 PDT 2018


Author: lemo
Date: Fri Nov  2 11:00:37 2018
New Revision: 346010

URL: http://llvm.org/viewvc/llvm-project?rev=346010&view=rev
Log:
Fix a few small issues in llvm-pdbutil

Running "llvm-pdbutil dump -all" on linux (using the native PDB reader),
over a few PDBs pulled from the Microsoft public symbol store uncovered 
a few small issues:

- stripped PDBs might not have the strings stream (/names)
- stripped PDBs might not have the "module info" stream

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


Added:
    llvm/trunk/test/tools/llvm-pdbdump/Inputs/Stripped.pdb   (with props)
    llvm/trunk/test/tools/llvm-pdbdump/stripped.test
Modified:
    llvm/trunk/test/tools/llvm-pdbdump/checksum-string.test
    llvm/trunk/test/tools/llvm-pdbdump/class-layout.test
    llvm/trunk/test/tools/llvm-pdbdump/complex-padding-graphical.test
    llvm/trunk/test/tools/llvm-pdbdump/enum-layout.test
    llvm/trunk/test/tools/llvm-pdbdump/explain-dbi-stream.test
    llvm/trunk/test/tools/llvm-pdbdump/explain-pdb-stream.test
    llvm/trunk/test/tools/llvm-pdbdump/explain.test
    llvm/trunk/test/tools/llvm-pdbdump/injected-sources.test
    llvm/trunk/test/tools/llvm-pdbdump/lit.local.cfg
    llvm/trunk/test/tools/llvm-pdbdump/load-address.test
    llvm/trunk/test/tools/llvm-pdbdump/pretty-func-dumper.test
    llvm/trunk/test/tools/llvm-pdbdump/regex-filter.test
    llvm/trunk/test/tools/llvm-pdbdump/simple-padding-graphical.test
    llvm/trunk/test/tools/llvm-pdbdump/symbol-filters.test
    llvm/trunk/test/tools/llvm-pdbdump/type-qualifiers.test
    llvm/trunk/test/tools/llvm-pdbdump/usingnamespace.test
    llvm/trunk/tools/llvm-pdbutil/DumpOutputStyle.cpp
    llvm/trunk/tools/llvm-pdbutil/InputFile.cpp
    llvm/trunk/tools/llvm-pdbutil/InputFile.h

Added: llvm/trunk/test/tools/llvm-pdbdump/Inputs/Stripped.pdb
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-pdbdump/Inputs/Stripped.pdb?rev=346010&view=auto
==============================================================================
Binary file - no diff available.

Propchange: llvm/trunk/test/tools/llvm-pdbdump/Inputs/Stripped.pdb
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: llvm/trunk/test/tools/llvm-pdbdump/checksum-string.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-pdbdump/checksum-string.test?rev=346010&r1=346009&r2=346010&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-pdbdump/checksum-string.test (original)
+++ llvm/trunk/test/tools/llvm-pdbdump/checksum-string.test Fri Nov  2 11:00:37 2018
@@ -1,3 +1,4 @@
+; REQUIRES: diasdk
 ; RUN: llvm-pdbutil pretty -lines %p/Inputs/PrettyFuncDumperTest.pdb > %t
 
 ; CHECK: ---COMPILANDS---

Modified: llvm/trunk/test/tools/llvm-pdbdump/class-layout.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-pdbdump/class-layout.test?rev=346010&r1=346009&r2=346010&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-pdbdump/class-layout.test (original)
+++ llvm/trunk/test/tools/llvm-pdbdump/class-layout.test Fri Nov  2 11:00:37 2018
@@ -1,3 +1,5 @@
+; REQUIRES: diasdk
+
 ; RUN: llvm-pdbutil pretty -all -class-recurse-depth=1 \
 ; RUN:   %p/Inputs/ClassLayoutTest.pdb > %t
 ; RUN: FileCheck -input-file=%t %s -check-prefix=GLOBALS_TEST

Modified: llvm/trunk/test/tools/llvm-pdbdump/complex-padding-graphical.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-pdbdump/complex-padding-graphical.test?rev=346010&r1=346009&r2=346010&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-pdbdump/complex-padding-graphical.test (original)
+++ llvm/trunk/test/tools/llvm-pdbdump/complex-padding-graphical.test Fri Nov  2 11:00:37 2018
@@ -1,3 +1,5 @@
+; REQUIRES: diasdk
+
 ; RUN: llvm-pdbutil pretty -classes -class-definitions=layout \
 ; RUN:     -include-types=Test %p/Inputs/ComplexPaddingTest.pdb > %t
 

Modified: llvm/trunk/test/tools/llvm-pdbdump/enum-layout.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-pdbdump/enum-layout.test?rev=346010&r1=346009&r2=346010&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-pdbdump/enum-layout.test (original)
+++ llvm/trunk/test/tools/llvm-pdbdump/enum-layout.test Fri Nov  2 11:00:37 2018
@@ -1,3 +1,5 @@
+; REQUIRES: diasdk
+
 ; RUN: llvm-pdbutil pretty -types %p/Inputs/ClassLayoutTest.pdb > %t
 ; RUN: FileCheck -input-file=%t %s -check-prefix=GLOBAL_ENUM
 ; RUN: FileCheck -input-file=%t %s -check-prefix=MEMBER_ENUM

Modified: llvm/trunk/test/tools/llvm-pdbdump/explain-dbi-stream.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-pdbdump/explain-dbi-stream.test?rev=346010&r1=346009&r2=346010&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-pdbdump/explain-dbi-stream.test (original)
+++ llvm/trunk/test/tools/llvm-pdbdump/explain-dbi-stream.test Fri Nov  2 11:00:37 2018
@@ -1,3 +1,5 @@
+; REQUIRES: diasdk
+
 ; RUN: llvm-pdbutil explain \
 ; RUN: -offset=0xF000 \
 ; RUN: -offset=0xF004 \

Modified: llvm/trunk/test/tools/llvm-pdbdump/explain-pdb-stream.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-pdbdump/explain-pdb-stream.test?rev=346010&r1=346009&r2=346010&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-pdbdump/explain-pdb-stream.test (original)
+++ llvm/trunk/test/tools/llvm-pdbdump/explain-pdb-stream.test Fri Nov  2 11:00:37 2018
@@ -1,3 +1,5 @@
+; REQUIRES: diasdk
+
 ; RUN: llvm-pdbutil explain \
 ; RUN: -offset=0x11000 \
 ; RUN: -offset=0x11004 \

Modified: llvm/trunk/test/tools/llvm-pdbdump/explain.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-pdbdump/explain.test?rev=346010&r1=346009&r2=346010&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-pdbdump/explain.test (original)
+++ llvm/trunk/test/tools/llvm-pdbdump/explain.test Fri Nov  2 11:00:37 2018
@@ -1,3 +1,5 @@
+; REQUIRES: diasdk
+
 ; RUN: llvm-pdbutil explain -offset=0 %p/Inputs/InjectedSource.pdb \
 ; RUN:  | FileCheck --check-prefix=ZERO %s
 ; RUN: llvm-pdbutil explain -offset=40 %p/Inputs/InjectedSource.pdb \

Modified: llvm/trunk/test/tools/llvm-pdbdump/injected-sources.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-pdbdump/injected-sources.test?rev=346010&r1=346009&r2=346010&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-pdbdump/injected-sources.test (original)
+++ llvm/trunk/test/tools/llvm-pdbdump/injected-sources.test Fri Nov  2 11:00:37 2018
@@ -1,6 +1,8 @@
 ; The PDB committed to the repo does not seem to be recognized by older
 ; versions of DIA SDK, so we xfail the test temporarily until we can
 ; figure out how to get a PDB that makes all versions of MSVC happy.
+; REQUIRES: diasdk
+
 ; RUN: llvm-pdbutil pretty -injected-sources -injected-source-content \
 ; RUN:   %p/Inputs/InjectedSource.pdb | FileCheck %s
 ; RUN: llvm-pdbutil pretty -injected-sources -injected-source-content \

Modified: llvm/trunk/test/tools/llvm-pdbdump/lit.local.cfg
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-pdbdump/lit.local.cfg?rev=346010&r1=346009&r2=346010&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-pdbdump/lit.local.cfg (original)
+++ llvm/trunk/test/tools/llvm-pdbdump/lit.local.cfg Fri Nov  2 11:00:37 2018
@@ -1 +1,2 @@
-config.unsupported = not config.have_dia_sdk
+if config.have_dia_sdk:
+  config.available_features.add("diasdk")

Modified: llvm/trunk/test/tools/llvm-pdbdump/load-address.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-pdbdump/load-address.test?rev=346010&r1=346009&r2=346010&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-pdbdump/load-address.test (original)
+++ llvm/trunk/test/tools/llvm-pdbdump/load-address.test Fri Nov  2 11:00:37 2018
@@ -1,3 +1,5 @@
+; REQUIRES: diasdk
+
 ; RUN: llvm-pdbutil pretty -externals %p/Inputs/LoadAddressTest.pdb \
 ; RUN:    | FileCheck --check-prefix=RVA %s
 ; RUN: llvm-pdbutil pretty -externals -load-address=0x40000000 \

Modified: llvm/trunk/test/tools/llvm-pdbdump/pretty-func-dumper.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-pdbdump/pretty-func-dumper.test?rev=346010&r1=346009&r2=346010&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-pdbdump/pretty-func-dumper.test (original)
+++ llvm/trunk/test/tools/llvm-pdbdump/pretty-func-dumper.test Fri Nov  2 11:00:37 2018
@@ -1,3 +1,5 @@
+; REQUIRES: diasdk
+
 ; RUN: llvm-pdbutil pretty -all -class-recurse-depth=1 \
 ; RUN:   %p/Inputs/PrettyFuncDumperTest.pdb > %t
 ; RUN: FileCheck -input-file=%t %s -check-prefix=GLOBALS_FUNC

Modified: llvm/trunk/test/tools/llvm-pdbdump/regex-filter.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-pdbdump/regex-filter.test?rev=346010&r1=346009&r2=346010&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-pdbdump/regex-filter.test (original)
+++ llvm/trunk/test/tools/llvm-pdbdump/regex-filter.test Fri Nov  2 11:00:37 2018
@@ -1,3 +1,5 @@
+; REQUIRES: diasdk
+
 ; RUN: llvm-pdbutil pretty -module-syms -globals -types %p/Inputs/FilterTest.pdb \
 ; RUN:    | FileCheck --check-prefix=NO_FILTER %s
 

Modified: llvm/trunk/test/tools/llvm-pdbdump/simple-padding-graphical.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-pdbdump/simple-padding-graphical.test?rev=346010&r1=346009&r2=346010&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-pdbdump/simple-padding-graphical.test (original)
+++ llvm/trunk/test/tools/llvm-pdbdump/simple-padding-graphical.test Fri Nov  2 11:00:37 2018
@@ -1,3 +1,5 @@
+; REQUIRES: diasdk
+
 ; RUN: llvm-pdbutil pretty -classes -class-definitions=layout \
 ; RUN:     -include-types=SimplePad %p/Inputs/SimplePaddingTest.pdb > %t
 

Added: llvm/trunk/test/tools/llvm-pdbdump/stripped.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-pdbdump/stripped.test?rev=346010&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-pdbdump/stripped.test (added)
+++ llvm/trunk/test/tools/llvm-pdbdump/stripped.test Fri Nov  2 11:00:37 2018
@@ -0,0 +1,109 @@
+; RUN: llvm-pdbutil dump -all %p/Inputs/Stripped.pdb > %t
+; RUN: FileCheck -input-file=%t %s
+
+; CHECK: Summary
+; CHECK-NEXT: ============================================================
+; CHECK-NEXT:  Block Size: 4096
+; CHECK-NEXT:  Number of blocks: 17
+; CHECK-NEXT:  Number of streams: 12
+; CHECK-NEXT:  Signature: 1541179274
+; CHECK-NEXT:  Age: 2
+; CHECK-NEXT:  GUID: {FF4F9B62-D99A-4647-97A7-22C702B1E053}
+; CHECK-NEXT:  Features: 0x1
+; CHECK-NEXT:  Has Debug Info: true
+; CHECK-NEXT:  Has Types: true
+; CHECK-NEXT:  Has IDs: true
+; CHECK-NEXT:  Has Globals: true
+; CHECK-NEXT:  Has Publics: true
+; CHECK-NEXT:  Is incrementally linked: false
+; CHECK-NEXT:  Has conflicting types: false
+; CHECK-NEXT:  Is stripped: true
+
+; CHECK: Streams
+; CHECK-NEXT: ============================================================
+; CHECK-NEXT:  Stream  0 (  88 bytes): [Old MSF Directory]
+; CHECK-NEXT:             Blocks: [4]
+; CHECK-NEXT:  Stream  1 (  78 bytes): [PDB Stream]
+; CHECK-NEXT:             Blocks: [14]
+; CHECK-NEXT:  Stream  2 (  56 bytes): [TPI Stream]
+; CHECK-NEXT:             Blocks: [13]
+; CHECK-NEXT:  Stream  3 (1355 bytes): [DBI Stream]
+; CHECK-NEXT:             Blocks: [7]
+; CHECK-NEXT:  Stream  4 (  56 bytes): [IPI Stream]
+; CHECK-NEXT:             Blocks: [6]
+; CHECK-NEXT:  Stream  5 (   0 bytes): [Named Stream "/LinkInfo"]
+; CHECK-NEXT:             Blocks: []
+; CHECK-NEXT:  Stream  6 ( 200 bytes): [Section Header Data]
+; CHECK-NEXT:             Blocks: [8]
+; CHECK-NEXT:  Stream  7 (  16 bytes): [Global Symbol Hash]
+; CHECK-NEXT:             Blocks: [9]
+; CHECK-NEXT:  Stream  8 ( 928 bytes): [Public Symbol Hash]
+; CHECK-NEXT:             Blocks: [11]
+; CHECK-NEXT:  Stream  9 ( 716 bytes): [Symbol Records]
+; CHECK-NEXT:             Blocks: [10]
+; CHECK-NEXT:  Stream 10 (   0 bytes): [TPI Hash]
+; CHECK-NEXT:             Blocks: []
+; CHECK-NEXT:  Stream 11 (   0 bytes): [IPI Hash]
+; CHECK-NEXT:             Blocks: []
+
+; CHECK: Module Stats
+; CHECK-NEXT: ============================================================
+
+; CHECK: S_UDT Record Stats
+; CHECK-NEXT: ============================================================
+
+; CHECK: String Table
+; CHECK-NEXT: ============================================================
+
+; CHECK: Modules
+; CHECK-NEXT: ============================================================
+
+; CHECK: Files
+; CHECK-NEXT: ============================================================
+
+; CHECK: Lines
+; CHECK-NEXT: ============================================================
+
+; CHECK: Inlinee Lines
+; CHECK-NEXT: ============================================================
+
+; CHECK: Cross Module Imports
+; CHECK-NEXT: ============================================================
+
+; CHECK: Cross Module Exports
+; CHECK-NEXT: ============================================================
+
+; CHECK: Old FPO Data
+; CHECK-NEXT: ============================================================
+
+; CHECK: New FPO Data
+; CHECK-NEXT: ============================================================
+
+; CHECK: Types (TPI Stream)
+; CHECK-NEXT: ============================================================
+
+; CHECK: Types (IPI Stream)
+; CHECK-NEXT: ============================================================
+
+; CHECK: Global Symbols
+; CHECK-NEXT: ============================================================
+
+; CHECK: Public Symbols
+; CHECK-NEXT: ============================================================
+
+; CHECK: Symbols
+; CHECK-NEXT: ============================================================
+
+; CHECK: Section Headers
+; CHECK-NEXT: ============================================================
+
+; CHECK: Original Section Headers
+; CHECK-NEXT: ============================================================
+
+; CHECK: Section Contributions
+; CHECK-NEXT: ============================================================
+
+; CHECK: Section Map
+; CHECK-NEXT: ============================================================
+
+

Modified: llvm/trunk/test/tools/llvm-pdbdump/symbol-filters.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-pdbdump/symbol-filters.test?rev=346010&r1=346009&r2=346010&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-pdbdump/symbol-filters.test (original)
+++ llvm/trunk/test/tools/llvm-pdbdump/symbol-filters.test Fri Nov  2 11:00:37 2018
@@ -1,3 +1,5 @@
+; REQUIRES: diasdk
+
 ; RUN: llvm-pdbutil pretty -globals -module-syms -sym-types=data %p/Inputs/FilterTest.pdb \
 ; RUN:    | FileCheck --check-prefix=ONLY_DATA %s
 

Modified: llvm/trunk/test/tools/llvm-pdbdump/type-qualifiers.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-pdbdump/type-qualifiers.test?rev=346010&r1=346009&r2=346010&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-pdbdump/type-qualifiers.test (original)
+++ llvm/trunk/test/tools/llvm-pdbdump/type-qualifiers.test Fri Nov  2 11:00:37 2018
@@ -1,3 +1,5 @@
+; REQUIRES: diasdk
+
 ; RUN: llvm-pdbutil pretty -all -class-recurse-depth=1 \
 ; RUN:   %p/Inputs/TypeQualifiersTest.pdb > %t
 ; RUN: FileCheck -input-file=%t %s -check-prefix=GLOBALS_FUNC

Modified: llvm/trunk/test/tools/llvm-pdbdump/usingnamespace.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-pdbdump/usingnamespace.test?rev=346010&r1=346009&r2=346010&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-pdbdump/usingnamespace.test (original)
+++ llvm/trunk/test/tools/llvm-pdbdump/usingnamespace.test Fri Nov  2 11:00:37 2018
@@ -1,3 +1,5 @@
+; REQUIRES: diasdk
+
 ; RUN: llvm-pdbutil pretty -module-syms %p/Inputs/UsingNamespaceTest.pdb > %t
 ; RUN: FileCheck -input-file=%t %s
 

Modified: llvm/trunk/tools/llvm-pdbutil/DumpOutputStyle.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-pdbutil/DumpOutputStyle.cpp?rev=346010&r1=346009&r2=346010&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-pdbutil/DumpOutputStyle.cpp (original)
+++ llvm/trunk/tools/llvm-pdbutil/DumpOutputStyle.cpp Fri Nov  2 11:00:37 2018
@@ -250,7 +250,7 @@ Error DumpOutputStyle::dumpFileSummary()
 static StatCollection getSymbolStats(const SymbolGroup &SG,
                                      StatCollection &CumulativeStats) {
   StatCollection Stats;
-  if (SG.getFile().isPdb()) {
+  if (SG.getFile().isPdb() && SG.hasDebugStream()) {
     // For PDB files, all symbols are packed into one stream.
     for (const auto &S : SG.getPdbModuleStream().symbols(nullptr)) {
       Stats.update(S.kind(), S.length());
@@ -1420,19 +1420,21 @@ Error DumpOutputStyle::dumpTpiStream(uin
       P.formatLine("TI: {0}, Offset: {1}", IO.Type, fmtle(IO.Offset));
     }
 
-    P.NewLine();
-    P.formatLine("Hash Adjusters:");
-    auto &Adjusters = Stream.getHashAdjusters();
-    auto &Strings = Err(getPdb().getStringTable());
-    for (const auto &A : Adjusters) {
-      AutoIndent Indent2(P);
-      auto ExpectedStr = Strings.getStringForID(A.first);
-      TypeIndex TI(A.second);
-      if (ExpectedStr)
-        P.formatLine("`{0}` -> {1}", *ExpectedStr, TI);
-      else {
-        P.formatLine("unknown str id ({0}) -> {1}", A.first, TI);
-        consumeError(ExpectedStr.takeError());
+    if (getPdb().hasPDBStringTable()) {
+      P.NewLine();
+      P.formatLine("Hash Adjusters:");
+      auto &Adjusters = Stream.getHashAdjusters();
+      auto &Strings = Err(getPdb().getStringTable());
+      for (const auto &A : Adjusters) {
+        AutoIndent Indent2(P);
+        auto ExpectedStr = Strings.getStringForID(A.first);
+        TypeIndex TI(A.second);
+        if (ExpectedStr)
+          P.formatLine("`{0}` -> {1}", *ExpectedStr, TI);
+        else {
+          P.formatLine("unknown str id ({0}) -> {1}", A.first, TI);
+          consumeError(ExpectedStr.takeError());
+        }
       }
     }
   }

Modified: llvm/trunk/tools/llvm-pdbutil/InputFile.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-pdbutil/InputFile.cpp?rev=346010&r1=346009&r2=346010&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-pdbutil/InputFile.cpp (original)
+++ llvm/trunk/tools/llvm-pdbutil/InputFile.cpp Fri Nov  2 11:00:37 2018
@@ -116,10 +116,6 @@ static std::string formatChecksumKind(Fi
   return formatUnknownEnum(Kind);
 }
 
-static const DebugStringTableSubsectionRef &extractStringTable(PDBFile &File) {
-  return cantFail(File.getStringTable()).getStringTable();
-}
-
 template <typename... Args>
 static void formatInternal(LinePrinter &Printer, bool Append, Args &&... args) {
   if (Append)
@@ -168,8 +164,13 @@ void SymbolGroup::initializeForPdb(uint3
 
   // PDB always uses the same string table, but each module has its own
   // checksums.  So we only set the strings if they're not already set.
-  if (!SC.hasStrings())
-    SC.setStrings(extractStringTable(File->pdb()));
+  if (!SC.hasStrings()) {
+    auto StringTable = File->pdb().getStringTable();
+    if (StringTable)
+      SC.setStrings(StringTable->getStringTable());
+    else
+      consumeError(StringTable.takeError());
+  }
 
   SC.resetChecksums();
   auto MDS = getModuleDebugStream(File->pdb(), Name, Modi);

Modified: llvm/trunk/tools/llvm-pdbutil/InputFile.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-pdbutil/InputFile.h?rev=346010&r1=346009&r2=346010&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-pdbutil/InputFile.h (original)
+++ llvm/trunk/tools/llvm-pdbutil/InputFile.h Fri Nov  2 11:00:37 2018
@@ -110,6 +110,8 @@ public:
   const InputFile &getFile() const { return *File; }
   InputFile &getFile() { return *File; }
 
+  bool hasDebugStream() const { return DebugStream != nullptr; }
+
 private:
   void initializeForPdb(uint32_t Modi);
   void updatePdbModi(uint32_t Modi);




More information about the llvm-commits mailing list