33 assert(!components.empty());
35 const auto &first_member_name=components.front().get_name();
39 components.front().
type());
41 if(first_member_name==
"@class_identifier")
57 const exprt &this_expr_in,
65 exprt this_expr=this_expr_in;
66 assert(this_expr.
type().
id()==ID_pointer &&
67 "Non-pointer this-arg in remove-virtuals?");
The type of an expression.
const typet & follow(const typet &src) const
pointer_typet pointer_type(const typet &subtype)
std::vector< componentt > componentst
const componentst & components() const
Extract member of struct or union.
const irep_idt & id() const
A reference into the symbol table.
Operator to dereference a pointer.
API to expression classes.
static exprt build_class_identifier(const exprt &src, const namespacet &ns)
exprt get_class_identifier_field(const exprt &this_expr_in, const symbol_typet &suggested_type, const namespacet &ns)
const struct_typet & to_struct_type(const typet &type)
Cast a generic typet to a struct_typet.
Base class for all expressions.
Extract class identifier.
const typet & subtype() const