18 std::pair<symbolst::iterator, bool> result=
20 symbolt &new_symbol=result.first->second;
25 symbol_base_mapt::iterator base_result=
43 return std::make_pair(std::ref(new_symbol), result.second);
70 std::pair<symbolt &, bool> result=
insert(std::move(temp_symbol));
75 result.first.swap(symbol);
78 new_symbol=&result.first;
79 return !result.second;
86 const symbolt &symbol=entry->second;
88 symbol_base_mapt::const_iterator
90 symbol_base_mapt::const_iterator
92 while(base_it!=base_it_end && base_it->second!=symbol.
name)
96 "symbolt::base_name should not be changed " 97 "after it is added to the symbol_table " 102 symbol_module_mapt::const_iterator
105 while(module_it!=module_it_end && module_it->second!=symbol.
name)
108 module_it!=module_it_end,
109 "symbolt::module should not be changed " 110 "after it is added to the symbol_table " symbolst internal_symbols
irep_idt name
The unique identifier.
const std::string & id2string(const irep_idt &d)
const symbol_base_mapt & symbol_base_map
irep_idt module
Name of module the symbol belongs to.
Symbol table entry.This is a symbol in the symbol table, stored in an object of type symbol_tablet...
#define INVARIANT(CONDITION, REASON)
symbol_module_mapt internal_symbol_module_map
virtual bool move(symbolt &symbol, symbolt *&new_symbol) override
Move a symbol into the symbol table.
const symbol_module_mapt & symbol_module_map
virtual void erase(const symbolst::const_iterator &entry) override
Remove a symbol from the symbol table.
symbol_base_mapt internal_symbol_base_map
irep_idt base_name
Base (non-scoped) name.
virtual std::pair< symbolt &, bool > insert(symbolt symbol) override
Author: Diffblue Ltd.