YAMLTraits.h: replace DenseMap that used a bad implementation of DenseMapInfo
[oota-llvm.git] / include / llvm / ADT / DenseMap.h
index 31fd6d899daec9bc5c3e868e9ae5066750612fef..71069ff470d89f1b419a283a4de4db76f0f53a5f 100644 (file)
@@ -222,11 +222,11 @@ public:
     if (LookupBucketFor(Key, TheBucket))
       return *TheBucket;
 
-    return *InsertIntoBucket(Key, ValueT(), TheBucket);
+    return *InsertIntoBucket(std::move(Key), ValueT(), TheBucket);
   }
 
   ValueT &operator[](KeyT &&Key) {
-    return FindAndConstruct(Key).second;
+    return FindAndConstruct(std::move(Key)).second;
   }
 #endif
 
@@ -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 {