Tighten up checking on SymbolTable interface to make it illegal to pass a
authorReid Spencer <rspencer@reidspencer.com>
Wed, 26 May 2004 21:46:18 +0000 (21:46 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Wed, 26 May 2004 21:46:18 +0000 (21:46 +0000)
Type* where a Value* is expected.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13794 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/SymbolTable.h

index b8fd2e9d691c7af8a1eae06e3d06b53aba4473e3..33b026ea2574d412fd5416d7acf3697568087c57 100644 (file)
@@ -165,8 +165,9 @@ public:
   /// @brief Insert a constant or type.
   inline void insert(const std::string &Name, Value *Val) {
     assert(Val && "Can't insert null type into symbol table!");
-    assert((isa<Type>(Val) || isa<Constant>(Val)) &&
-           "Can only insert types and constants into a symbol table!");
+    assert(!isa<Type>(Val) && "Cannot insert types with this interface!");
+    assert(isa<Constant>(Val) &&
+           "Can only insert constants into a symbol table!");
     insertEntry(Name, Val->getType(), Val);
   }
 
@@ -201,6 +202,7 @@ public:
   /// @brief Remove a constant or type from the symbol table.
   inline Value* remove(const std::string &Name, Value *Val) {
     assert(Val && "Can't remove null value from symbol table!");
+    assert(!isa<Type>(Val) && "Can't remove types with this interface!");
     plane_iterator PI = pmap.find(Val->getType());
     return removeEntry(PI, PI->second.find(Name));
   }