[ADT] IntervalMap: use AlignedCharArrayUnion.
[oota-llvm.git] / include / llvm / ADT / StringSet.h
index 7bea577f34d33f411f592d15b8be050d119d4441..3e0cc200b6dda62125010288f5e0c264f697460d 100644 (file)
@@ -24,20 +24,9 @@ namespace llvm {
     typedef llvm::StringMap<char, AllocatorTy> base;
   public:
 
-    /// insert - Insert the specified key into the set.  If the key already
-    /// exists in the set, return false and ignore the request, otherwise insert
-    /// it and return true.
-    bool insert(StringRef Key) {
-      // Get or create the map entry for the key; if it doesn't exist the value
-      // type will be default constructed which we use to detect insert.
-      //
-      // We use '+' as the sentinel value in the map.
+    std::pair<typename base::iterator, bool> insert(StringRef Key) {
       assert(!Key.empty());
-      StringMapEntry<char> &Entry = this->GetOrCreateValue(Key);
-      if (Entry.getValue() == '+')
-        return false;
-      Entry.setValue('+');
-      return true;
+      return base::insert(std::make_pair(Key, '\0'));
     }
   };
 }