Go to the documentation of this file.
26 std::ostream &l1_object_os)
28 if(expr.
id()==ID_member)
36 else if(expr.
id()==ID_index)
43 os <<
'[' << idx <<
']';
45 else if(expr.
id()==ID_symbol)
49 l1_object_os << symid;
55 l1_object_os <<
'!' << l0;
62 l1_object_os <<
'@' << l1;
79 if(expr.
id()==ID_symbol)
81 else if(expr.
id() == ID_member)
83 else if(expr.
id() == ID_index)
95 std::ostringstream oss;
96 std::ostringstream l1_object_oss;
111 set(ID_L1_object_identifier, idpair.second);
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
const irep_idt get_level_0() const
const index_exprt & to_index_expr(const exprt &expr)
Cast an exprt to an index_exprt.
static std::pair< irep_idt, irep_idt > build_identifier(const exprt &expr, const irep_idt &l0, const irep_idt &l1, const irep_idt &l2)
Base class for all expressions.
const exprt & get_original_expr() const
#define UNREACHABLE
This should be used to mark dead code.
static void build_ssa_identifier_rec(const exprt &expr, const irep_idt &l0, const irep_idt &l1, const irep_idt &l2, std::ostream &os, std::ostream &l1_object_os)
If expr is a symbol "s" add to os "s!l0@l1#l2" and to l1_object_os "s!l0@l1".
const exprt & struct_op() const
const irep_idt & get_identifier() const
const irep_idt get_level_2() const
const symbol_exprt & to_symbol_expr(const exprt &expr)
Cast an exprt to a symbol_exprt.
const irep_idt & id() const
Extract member of struct or union.
void set(const irep_namet &name, const irep_idt &value)
const irep_idt get_level_1() const
const member_exprt & to_member_expr(const exprt &expr)
Cast an exprt to a member_exprt.
irep_idt get_component_name() const
static bool can_build_identifier(const exprt &src)
void set_identifier(const irep_idt &identifier)