26 if(node.
type().
id() != ID_pointer)
32 const auto &struct_type =
38 for(
auto &m : struct_type.components())
40 if(m.type() == node.
type())
pointer_typet pointer_type(const typet &subtype)
Base class for all expressions.
typet & type()
Return the type of the expression.
Operator to return the address of a field relative to a base address.
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.
API to expression classes for Pointers.
const pointer_typet & to_pointer_type(const typet &type)
Cast a typet to a pointer_typet.
std::optional< exprt > sentinel_dll_next(const exprt &state, const exprt &node, const namespacet &ns)
std::optional< exprt > sentinel_dll_prev(const exprt &state, const exprt &node, const namespacet &ns)
std::optional< exprt > sentinel_dll_member(const exprt &state, const exprt &node, bool next, const namespacet &ns)
auto component(T &struct_expr, const irep_idt &name, const namespacet &ns) -> decltype(struct_expr.op0())
const struct_tag_typet & to_struct_tag_type(const typet &type)
Cast a typet to a struct_tag_typet.