SmallVector: Crank up verbosity of asserts per Chandler's request.
[oota-llvm.git] / include / llvm / ADT / SetVector.h
index fab133af4c03b1b49b4ae033278bb0d44b6b70dd..965f0deacaa249475f6dedf45d5d379b052ca737 100644 (file)
@@ -114,13 +114,15 @@ public:
   }
 
   /// @brief Remove an item from the set vector.
-  void remove(const value_type& X) {
+  bool remove(const value_type& X) {
     if (set_.erase(X)) {
       typename vector_type::iterator I =
         std::find(vector_.begin(), vector_.end(), X);
       assert(I != vector_.end() && "Corrupted SetVector instances!");
       vector_.erase(I);
+      return true;
     }
+    return false;
   }
 
 
@@ -142,6 +144,20 @@ public:
     set_.erase(back());
     vector_.pop_back();
   }
+  
+  T pop_back_val() {
+    T Ret = back();
+    pop_back();
+    return Ret;
+  }
+
+  bool operator==(const SetVector &that) const {
+    return vector_ == that.vector_;
+  }
+
+  bool operator!=(const SetVector &that) const {
+    return vector_ != that.vector_;
+  }
 
 private:
   set_type set_;         ///< The set.