summaryrefslogtreecommitdiff
path: root/include/llvm/Support/YAMLTraits.h
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/Support/YAMLTraits.h
parent235089bdaefabcef9e9cde28eb3b0d8937b12a0d (diff)
downloadllvm-9e8eafa0f0ad36c3e4397e97b67b8245b04ba618.tar.gz
llvm-9e8eafa0f0ad36c3e4397e97b67b8245b04ba618.tar.bz2
llvm-9e8eafa0f0ad36c3e4397e97b67b8245b04ba618.tar.xz
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/Support/YAMLTraits.h')
-rw-r--r--include/llvm/Support/YAMLTraits.h12
1 files changed, 2 insertions, 10 deletions
diff --git a/include/llvm/Support/YAMLTraits.h b/include/llvm/Support/YAMLTraits.h
index 801868ff1f..0f57f44340 100644
--- a/include/llvm/Support/YAMLTraits.h
+++ b/include/llvm/Support/YAMLTraits.h
@@ -14,7 +14,7 @@
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseMapInfo.h"
#include "llvm/ADT/SmallVector.h"
-#include "llvm/ADT/StringExtras.h"
+#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/ADT/Twine.h"
@@ -760,15 +760,7 @@ private:
}
static inline bool classof(const MapHNode *) { return true; }
- struct StrMappingInfo {
- static StringRef getEmptyKey() { return StringRef(); }
- static StringRef getTombstoneKey() { return StringRef(" ", 0); }
- static unsigned getHashValue(StringRef const val) {
- return llvm::HashString(val); }
- static bool isEqual(StringRef const lhs,
- StringRef const rhs) { return lhs.equals(rhs); }
- };
- typedef llvm::DenseMap<StringRef, HNode*, StrMappingInfo> NameToNode;
+ typedef llvm::StringMap<HNode*> NameToNode;
bool isValidKey(StringRef key);