22 if(type.
id() == ID_struct_tag)
26 else if(type.
id()==ID_struct)
28 const exprt &methods=
static_cast<const exprt&
>(type.
find(ID_methods));
32 if(it->type().id()==ID_code)
41 if(arg_type.
id()==ID_pointer &&
44 const symbol_exprt symbol_expr(it->get(ID_name), it->type());
codet representation of a function call statement.
const typet & return_type() const
const parameterst & parameters() const
Base class for all expressions.
const irept & find(const irep_namet &name) const
const irep_idt & id() const
const typet & follow(const typet &) const
Resolve type symbol to the type it points to.
const union_typet & follow_tag(const union_tag_typet &) const
Follow type tag of union type.
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Expression to hold a symbol (variable)
The type of an expression, extends irept.
const typet & subtype() const
code_function_callt get_destructor(const namespacet &ns, const typet &type)
#define forall_operands(it, expr)
const irept & get_nil_irep()
API to expression classes.
const code_typet & to_code_type(const typet &type)
Cast a typet to a code_typet.
const struct_tag_typet & to_struct_tag_type(const typet &type)
Cast a typet to a struct_tag_typet.