util/symtable.cc
changeset 952 e984cfdf3b10
parent 596 4efb11e44065
child 971 8aee27d46208
--- a/util/symtable.cc	Sat Nov 29 12:10:34 2014 +0000
+++ b/util/symtable.cc	Sat Nov 29 13:43:20 2014 +0000
@@ -116,12 +116,13 @@
   }
 
   // std::cout << "store_identifier(" << identifier_str << "): \n";
+  iterator i = _base.find(identifier_str);
+  if ((i != _base.end()) && (i->second != new_value)) {ERROR;}  /* error inserting new identifier: identifier already in map associated to a different value */
+  if ((i != _base.end()) && (i->second == new_value)) {return;} /* identifier already in map associated with the same value */
+
   std::pair<const char *, value_t> new_element(identifier_str, new_value);
   std::pair<iterator, bool> res = _base.insert(new_element);
-  if (!res.second)
-    /* error inserting new identifier... */
-    /* identifier already in map?        */
-    ERROR;
+  if (!res.second) {ERROR;} /* unknown error inserting new identifier */
 }
 
 template<typename value_type, value_type null_value>