Go to the documentation of this file.
16 if(type.
id()==ID_struct)
28 if(!struct_type.
bases().empty())
34 for(
const auto &c : components)
36 if(c.get_bool(ID_is_type))
39 if(c.get_base_name() ==
"operator=")
42 if(c.get_bool(ID_is_virtual))
45 const typet &sub_type = c.type();
47 if(sub_type.
id()==ID_code)
49 if(c.get_bool(ID_is_virtual))
55 comp_return_type.
id() == ID_constructor ||
56 comp_return_type.
id() == ID_destructor)
61 else if(c.get(ID_access) != ID_public && !c.get_bool(ID_is_static))
70 else if(type.
id()==ID_array)
74 else if(type.
id()==ID_pointer)
82 else if(type.
id() == ID_struct_tag ||
83 type.
id() == ID_union_tag)
const componentst & components() const
const typet & subtype() const
const struct_typet & to_struct_type(const typet &type)
Cast a typet to a struct_typet.
The type of an expression, extends irept.
typet type
Type of symbol.
const symbolt & lookup(const irep_idt &name) const
Lookup a symbol in the namespace.
std::vector< componentt > componentst
bool cpp_is_pod(const typet &type) const
const code_typet & to_code_type(const typet &type)
Cast a typet to a code_typet.
const tag_typet & to_tag_type(const typet &type)
Cast a typet to a tag_typet.
#define DATA_INVARIANT(CONDITION, REASON)
This condition should be used to document that assumptions that are made on goto_functions,...
const basest & bases() const
Get the collection of base classes/structs.
const irep_idt & id() const
C++ Language Type Checking.
Structure type, corresponds to C style structs.
bool is_reference(const typet &type)
Returns true if the type is a reference.
const typet & return_type() const