111 std::set<irep_idt>
symb;
131 std::cout <<
"T1: " <<
type1.pretty() <<
'\n';
132 std::cout <<
"T2: " <<
type2.pretty() <<
'\n';
270 for(exprt::operandst::const_iterator
void base_type(typet &type, const namespacet &ns)
void base_type_rec(typet &type, const namespacet &ns, std::set< irep_idt > &symb)
bool base_type_eq(const typet &type1, const typet &type2, const namespacet &ns)
Check types for equality across all levels of hierarchy.
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
base_type_eqt(const namespacet &_ns)
virtual bool base_type_eq_rec(const typet &type1, const typet &type2)
bool base_type_eq(const typet &type1, const typet &type2)
union_find< irep_idt > identifierst
bool base_type_eq(const exprt &expr1, const exprt &expr2)
std::vector< parametert > parameterst
const parameterst & parameters() const
const typet & return_type() const
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Base class for all expressions.
std::vector< exprt > operandst
typet & type()
Return the type of the expression.
const irep_idt & id() const
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
bool lookup(const irep_idt &name, const symbolt *&symbol) const override
See documentation for namespace_baset::lookup().
const typet & base_type() const
The type of the data what we point to.
const componentst & components() const
std::vector< componentt > componentst
typet type
Type of symbol.
const irep_idt & get_identifier() const
The type of an expression, extends irept.
bool make_union(const T &a, const T &b)
#define Forall_operands(it, expr)
API to expression classes for Pointers.
const pointer_typet & to_pointer_type(const typet &type)
Cast a typet to a pointer_typet.
static optionalt< smt_termt > get_identifier(const exprt &expr, const std::unordered_map< exprt, smt_identifier_termt, irep_hash > &expression_handle_identifiers, const std::unordered_map< exprt, smt_identifier_termt, irep_hash > &expression_identifiers)
auto component(T &struct_expr, const irep_idt &name, const namespacet &ns) -> decltype(struct_expr.op0())
const code_typet & to_code_type(const typet &type)
Cast a typet to a code_typet.
const array_typet & to_array_type(const typet &type)
Cast a typet to an array_typet.
const struct_union_typet & to_struct_union_type(const typet &type)
Cast a typet to a struct_union_typet.
const tag_typet & to_tag_type(const typet &type)
Cast a typet to a tag_typet.