[llvm] r309331 - [PDB] Initialize the std::array<ulittle32_t> used for the gsi bitmap

Reid Kleckner via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 27 16:13:05 PDT 2017


Author: rnk
Date: Thu Jul 27 16:13:05 2017
New Revision: 309331

URL: http://llvm.org/viewvc/llvm-project?rev=309331&view=rev
Log:
[PDB] Initialize the std::array<ulittle32_t> used for the gsi bitmap

With ASan, we would write about 512 bytes of malloc fill value to the
PDB, with some random bits ORed in here and there. Dumping the PDB would
always fail reliably.

Modified:
    llvm/trunk/lib/DebugInfo/PDB/Native/PublicsStreamBuilder.cpp

Modified: llvm/trunk/lib/DebugInfo/PDB/Native/PublicsStreamBuilder.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/Native/PublicsStreamBuilder.cpp?rev=309331&r1=309330&r2=309331&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/Native/PublicsStreamBuilder.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/Native/PublicsStreamBuilder.cpp Thu Jul 27 16:13:05 2017
@@ -201,6 +201,8 @@ void GSIHashTableBuilder::addSymbols(Arr
   // Compute the three tables: the hash records in bucket and chain order, the
   // bucket presence bitmap, and the bucket chain start offsets.
   HashRecords.reserve(Symbols.size());
+  for (ulittle32_t &Word : HashBitmap)
+    Word = 0;
   for (size_t BucketIdx = 0; BucketIdx < IPHR_HASH + 1; ++BucketIdx) {
     auto &Bucket = TmpBuckets[BucketIdx];
     if (Bucket.empty())




More information about the llvm-commits mailing list