From eb271e82ff427f0796db172f40535dd9fb01104c Mon Sep 17 00:00:00 2001 From: Reid Kleckner Date: Fri, 27 Oct 2017 00:45:51 +0000 Subject: [PATCH] [PDB] Handle an empty globals hash table with no buckets git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316722 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/DebugInfo/PDB/Native/GlobalsStream.cpp | 5 +++-- test/DebugInfo/PDB/Inputs/pdbdump-globals-empty.pdb | Bin 0 -> 86016 bytes test/DebugInfo/PDB/pdbdump-globals-empty.test | 6 ++++++ tools/llvm-pdbutil/DumpOutputStyle.cpp | 6 ++++-- 4 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 test/DebugInfo/PDB/Inputs/pdbdump-globals-empty.pdb create mode 100644 test/DebugInfo/PDB/pdbdump-globals-empty.test diff --git a/lib/DebugInfo/PDB/Native/GlobalsStream.cpp b/lib/DebugInfo/PDB/Native/GlobalsStream.cpp index 1fe35a691c3..97bbbebd575 100644 --- a/lib/DebugInfo/PDB/Native/GlobalsStream.cpp +++ b/lib/DebugInfo/PDB/Native/GlobalsStream.cpp @@ -117,7 +117,8 @@ Error GSIHashTable::read(BinaryStreamReader &Reader) { 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(); } diff --git a/test/DebugInfo/PDB/Inputs/pdbdump-globals-empty.pdb b/test/DebugInfo/PDB/Inputs/pdbdump-globals-empty.pdb new file mode 100644 index 0000000000000000000000000000000000000000..a688d399895b6ad333f4e9fcfa0bc7b79cff37ad GIT binary patch literal 86016 zcmeI*O;Z#{7{KvfFuaO!fh1KNlBtvjgJEDn!JtVImzYoiQJ_+>oCECcELk$Uv$ZTr zI4Bo$ODYGe`~s9GKY^!s<-`ZD`~Y51i(^XiJTuG|YalrUi?@GEZ|`*X^vwS7(!CEo zW4Uz6pZBw6E7_eqcg`A{ylM^DJv}W=9mA7G(rIIAr1(JcPkJn=Ei8CN009ILKmY** z5I_I{1Q0*~fkPtj=UfB*srAbD z+^wyn7Bi{cud9m}+993K7^}-IluN%1=4WyRtE=E=-0aMPSN3u#t1IKC7G{G_+iE_S z^^o`EU$`YgOrjq;On*FPP6ibp$zBPTG1GS0T`WtV4l@vs>U4mZ30ltN3)xSefDSf2P4bL*>W4Ye+)_HnW_*)w5z7?~sG3*-49`yN8%57;#BF>{Y^I%;;DkL~vgW0Rn zkTF-PDmXv@0R#|0009ILKmY**5I_KdcPgOq{vD0ouioiJ7#slv5I_I{1Q0*~0R#|0 z009K{RiM?JlKttTeeQH$yzuY-Wm~ymF92N|(C_jaq?6WZ-iu`I#UPBa?*gZ{;znZf zzh&QVh8sWt0R#|0009ILKmY**5ZG0~l6k#``|G@3_xsykMzI0R|99m(_6^MckNtlE z01!X`0R#|0009ILK;V!FJg^fnbMN&{o%g?ZbnDW_^O@1d%MY{n+uNQtNnN)-5^$uD z^@EiGjTF$HT1H7%4KzKw(Wgx$1Q0*~0R#|0009ILKmY**5IArG`W^qB#zah~?sca5 z_jB*sr3lJB_7nyM5MZRYaekI3z#OIC2=Qm<&tB7eQOkKiZb1 zt$l~K6B3=#5)7oDFpRO+y&4;Xx|&Lz?#md~)mG}FxDCC2bgq`seQN!i^*8G})Tesz zuhzv(D);gN@|4%aiKkUC&?jHdJ5I_I{1Q0*~ z0R#|00D&rjQ*v}x@-@jC2QVeU;Xyoryw`AmQ90JQbWMwrH-flxV~X-#getGlobalsTable()) { CVSymbol Sym = SymbolRecords.readRecord(PubSymOff); HandleOneSymbol(Sym); } -- 2.11.0