[llvm-commits] [llvm] r76597 - /llvm/trunk/include/llvm/ADT/DenseMap.h
Torok Edwin
edwintorok at gmail.com
Tue Jul 21 11:01:41 PDT 2009
Author: edwin
Date: Tue Jul 21 13:01:37 2009
New Revision: 76597
URL: http://llvm.org/viewvc/llvm-project?rev=76597&view=rev
Log:
Add freed memory poisoning in !NDEBUG mode for DenseMap.
Modified:
llvm/trunk/include/llvm/ADT/DenseMap.h
Modified: llvm/trunk/include/llvm/ADT/DenseMap.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/DenseMap.h?rev=76597&r1=76596&r2=76597&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ADT/DenseMap.h (original)
+++ llvm/trunk/include/llvm/ADT/DenseMap.h Tue Jul 21 13:01:37 2009
@@ -17,6 +17,7 @@
#include "llvm/Support/PointerLikeTypeTraits.h"
#include "llvm/Support/MathExtras.h"
#include <cassert>
+#include <cstring>
#include <utility>
#include <new>
@@ -160,6 +161,9 @@
P->second.~ValueT();
P->first.~KeyT();
}
+#ifndef NDEBUG
+ memset(Buckets, 0x5a, sizeof(BucketT)*NumBuckets);
+#endif
operator delete(Buckets);
}
@@ -318,8 +322,12 @@
NumEntries = other.NumEntries;
NumTombstones = other.NumTombstones;
- if (NumBuckets)
+ if (NumBuckets) {
+#ifndef NDEBUG
+ memset(Buckets, 0x5a, sizeof(BucketT)*NumBuckets);
+#endif
operator delete(Buckets);
+ }
Buckets = static_cast<BucketT*>(operator new(sizeof(BucketT) *
other.NumBuckets));
@@ -465,6 +473,9 @@
B->first.~KeyT();
}
+#ifndef NDEBUG
+ memset(OldBuckets, 0x5a, sizeof(BucketT)*OldNumBuckets);
+#endif
// Free the old table.
operator delete(OldBuckets);
}
@@ -495,6 +506,9 @@
B->first.~KeyT();
}
+#ifndef NDEBUG
+ memset(OldBuckets, 0x5a, sizeof(BucketT)*OldNumBuckets);
+#endif
// Free the old table.
operator delete(OldBuckets);
More information about the llvm-commits
mailing list