aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Stump <mrs@apple.com>2009-08-26 18:02:19 +0000
committerMike Stump <mrs@apple.com>2009-08-26 18:02:19 +0000
commite1182b5599f11778286f027eb536d7ddf7657eda (patch)
tree2a2b92760802001b5f2b17dddd59bd3fe9e4f88e
parent31fb12f93a30cca700a20088e97d8b05d13d5fca (diff)
Allow unsigned long long DenseMapInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80118 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/ADT/DenseMapInfo.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/llvm/ADT/DenseMapInfo.h b/include/llvm/ADT/DenseMapInfo.h
index a895074220..d76ebde7fb 100644
--- a/include/llvm/ADT/DenseMapInfo.h
+++ b/include/llvm/ADT/DenseMapInfo.h
@@ -84,6 +84,20 @@ template<> struct DenseMapInfo<unsigned long> {
}
};
+// Provide DenseMapInfo for unsigned long longs.
+template<> struct DenseMapInfo<unsigned long long> {
+ static inline unsigned long long getEmptyKey() { return ~0LL; }
+ static inline unsigned long long getTombstoneKey() { return ~0LL - 1LL; }
+ static unsigned getHashValue(const unsigned long long& Val) {
+ return (unsigned)(Val * 37LL);
+ }
+ static bool isPod() { return true; }
+ static bool isEqual(const unsigned long long& LHS,
+ const unsigned long long& RHS) {
+ return LHS == RHS;
+ }
+};
+
// Provide DenseMapInfo for all pairs whose members have info.
template<typename T, typename U>
struct DenseMapInfo<std::pair<T, U> > {