aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/ADT
diff options
context:
space:
mode:
authorDmitri Gribenko <gribozavr@gmail.com>2013-08-07 05:51:27 +0000
committerDmitri Gribenko <gribozavr@gmail.com>2013-08-07 05:51:27 +0000
commit9e8eafa0f0ad36c3e4397e97b67b8245b04ba618 (patch)
tree9f4b483e7ec0ad12fbe55980ae87bb0252846457 /include/llvm/ADT
parent235089bdaefabcef9e9cde28eb3b0d8937b12a0d (diff)
downloadexternal_llvm-9e8eafa0f0ad36c3e4397e97b67b8245b04ba618.zip
external_llvm-9e8eafa0f0ad36c3e4397e97b67b8245b04ba618.tar.gz
external_llvm-9e8eafa0f0ad36c3e4397e97b67b8245b04ba618.tar.bz2
YAMLTraits.h: replace DenseMap that used a bad implementation of DenseMapInfo
for StringRef with a StringMap The bug is that the empty key compares equal to the tombstone key. Also added an assertion to DenseMap to catch similar bugs in future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187866 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/ADT')
-rw-r--r--include/llvm/ADT/DenseMap.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/llvm/ADT/DenseMap.h b/include/llvm/ADT/DenseMap.h
index d5aa864..71069ff 100644
--- a/include/llvm/ADT/DenseMap.h
+++ b/include/llvm/ADT/DenseMap.h
@@ -606,6 +606,9 @@ public:
}
void init(unsigned InitBuckets) {
+ assert(!KeyInfoT::isEqual(this->getEmptyKey(), this->getTombstoneKey()) &&
+ "Bad implementation of KeyInfoT: empty key and tombstone key "
+ "should be different");
if (allocateBuckets(InitBuckets)) {
this->BaseT::initEmpty();
} else {