[llvm] r316722 - [PDB] Handle an empty globals hash table with no buckets
Reid Kleckner via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 26 17:45:51 PDT 2017
Author: rnk
Date: Thu Oct 26 17:45:51 2017
New Revision: 316722
URL: http://llvm.org/viewvc/llvm-project?rev=316722&view=rev
Log:
[PDB] Handle an empty globals hash table with no buckets
Added:
llvm/trunk/test/DebugInfo/PDB/Inputs/pdbdump-globals-empty.pdb (with props)
llvm/trunk/test/DebugInfo/PDB/pdbdump-globals-empty.test
Modified:
llvm/trunk/lib/DebugInfo/PDB/Native/GlobalsStream.cpp
llvm/trunk/tools/llvm-pdbutil/DumpOutputStyle.cpp
Modified: llvm/trunk/lib/DebugInfo/PDB/Native/GlobalsStream.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/Native/GlobalsStream.cpp?rev=316722&r1=316721&r2=316722&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/Native/GlobalsStream.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/Native/GlobalsStream.cpp Thu Oct 26 17:45:51 2017
@@ -117,7 +117,8 @@ Error GSIHashTable::read(BinaryStreamRea
return EC;
if (auto EC = readGSIHashRecords(HashRecords, HashHdr, Reader))
return EC;
- if (auto EC = readGSIHashBuckets(HashBuckets, HashBitmap, HashHdr, Reader))
- return EC;
+ if (HashHdr->HrSize > 0)
+ if (auto EC = readGSIHashBuckets(HashBuckets, HashBitmap, HashHdr, Reader))
+ return EC;
return Error::success();
}
Added: llvm/trunk/test/DebugInfo/PDB/Inputs/pdbdump-globals-empty.pdb
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/PDB/Inputs/pdbdump-globals-empty.pdb?rev=316722&view=auto
==============================================================================
Binary file - no diff available.
Propchange: llvm/trunk/test/DebugInfo/PDB/Inputs/pdbdump-globals-empty.pdb
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: llvm/trunk/test/DebugInfo/PDB/pdbdump-globals-empty.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/PDB/pdbdump-globals-empty.test?rev=316722&view=auto
==============================================================================
--- llvm/trunk/test/DebugInfo/PDB/pdbdump-globals-empty.test (added)
+++ llvm/trunk/test/DebugInfo/PDB/pdbdump-globals-empty.test Thu Oct 26 17:45:51 2017
@@ -0,0 +1,6 @@
+RUN: llvm-pdbutil dump -globals %S/Inputs/pdbdump-globals-empty.pdb | FileCheck %s
+
+CHECK: Global Symbols
+CHECK: ============================================================
+CHECK: Records
+CHECK-NOT: S_
Modified: llvm/trunk/tools/llvm-pdbutil/DumpOutputStyle.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-pdbutil/DumpOutputStyle.cpp?rev=316722&r1=316721&r2=316722&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-pdbutil/DumpOutputStyle.cpp (original)
+++ llvm/trunk/tools/llvm-pdbutil/DumpOutputStyle.cpp Thu Oct 26 17:45:51 2017
@@ -639,9 +639,11 @@ Error DumpOutputStyle::dumpUdtStats() {
}
auto &SymbolRecords = cantFail(getPdb().getPDBSymbolStream());
- auto &Globals = cantFail(getPdb().getPDBGlobalsStream());
+ auto ExpGlobals = getPdb().getPDBGlobalsStream();
+ if (!ExpGlobals)
+ return ExpGlobals.takeError();
- for (uint32_t PubSymOff : Globals.getGlobalsTable()) {
+ for (uint32_t PubSymOff : ExpGlobals->getGlobalsTable()) {
CVSymbol Sym = SymbolRecords.readRecord(PubSymOff);
HandleOneSymbol(Sym);
}
More information about the llvm-commits
mailing list