28 if(symbol.
type.
get(ID_C_failed_symbol)!=
"")
31 if(symbol.
type.
id()==ID_pointer)
41 new_symbol.
type.
set(ID_C_is_failed_symbol,
true);
43 symbol.
type.
set(ID_C_failed_symbol, new_symbol.
name);
45 if(new_symbol.
type.
id()==ID_pointer)
48 symbol_table.
move(new_symbol);
57 typedef std::list< ::symbolt *> symbol_listt;
58 symbol_listt symbol_list;
61 symbol_list.push_back(&(it->second));
63 for(symbol_listt::const_iterator
64 it=symbol_list.begin();
65 it!=symbol_list.end();
79 if(failed_symbol_id.
empty())
irep_idt name
The unique identifier.
virtual bool lookup(const irep_idt &name, const symbolt *&symbol) const
const std::string & id2string(const irep_idt &d)
irep_idt mode
Language mode.
exprt value
Initial value of symbol.
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 Forall_symbols(it, expr)
const irep_idt & id() const
exprt get_failed_symbol(const symbol_exprt &expr, const namespacet &ns)
irep_idt failed_symbol_id(const irep_idt &id)
API to expression classes.
const irep_idt & get(const irep_namet &name) const
bool move(symbolt &symbol, symbolt *&new_symbol)
Move a symbol into the symbol table.
typet type
Type of symbol.
void add_failed_symbol(symbolt &symbol, symbol_tablet &symbol_table)
Base class for all expressions.
irep_idt base_name
Base (non-scoped) name.
Expression to hold a symbol (variable)
void add_failed_symbols(symbol_tablet &symbol_table)
const typet & subtype() const
void set(const irep_namet &name, const irep_idt &value)