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));
30 for(
const auto &op : methods.
operands())
32 if(op.type().id() == ID_code)
41 if(arg_type.
id() != ID_pointer)
46 base_type.
id() == ID_struct_tag &&
49 const symbol_exprt symbol_expr(op.get(ID_name), op.type());
goto_instruction_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_idt &name) const
const irep_idt & id() const
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...
const typet & base_type() const
The type of the data what we point to.
Expression to hold a symbol (variable)
The type of an expression, extends irept.
code_function_callt get_destructor(const namespacet &ns, const typet &type)
const irept & get_nil_irep()
API to expression classes for Pointers.
const pointer_typet & to_pointer_type(const typet &type)
Cast a typet to a pointer_typet.
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.