12 #ifndef CPROVER_ANALYSES_VARIABLE_SENSITIVITY_UNION_ABSTRACT_OBJECT_H
13 #define CPROVER_ANALYSES_VARIABLE_SENSITIVITY_UNION_ABSTRACT_OBJECT_H
18 two_value_union_abstract_objectt,
19 union_aggregate_typet>
Common behaviour for abstract objects modelling aggregate values - arrays, structs,...
std::set< abstract_object_pointert > abstract_object_visitedt
virtual const typet & type() const
Get the real type of the variable this abstract object is representing.
Base class for all expressions.
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
two_value_union_abstract_objectt(const exprt &expr, const abstract_environmentt &environment, const namespacet &ns)
void statistics(abstract_object_statisticst &statistics, abstract_object_visitedt &visited, const abstract_environmentt &env, const namespacet &ns) const override
abstract_aggregate_objectt< two_value_union_abstract_objectt, union_aggregate_typet > abstract_aggregate_baset
two_value_union_abstract_objectt(const typet &type, bool top, bool bottom)
Start the abstract object at either top or bottom or neither Asserts if both top and bottom are true.
The type of an expression, extends irept.