|
| interval_abstract_valuet (const typet &t) |
|
| interval_abstract_valuet (const typet &t, bool tp, bool bttm) |
|
| interval_abstract_valuet (const constant_interval_exprt &e) |
|
| interval_abstract_valuet (const exprt &e, const abstract_environmentt &environment, const namespacet &ns) |
|
| ~interval_abstract_valuet () override=default |
|
index_range_implementation_ptrt | index_range_implementation (const namespacet &ns) const override |
|
value_range_implementation_ptrt | value_range_implementation () const override |
|
exprt | to_constant () const override |
| Converts to a constant expression if possible. More...
|
|
constant_interval_exprt | to_interval () const override |
|
size_t | internal_hash () const override |
|
bool | internal_equality (const abstract_object_pointert &other) const override |
|
void | output (std::ostream &out, const class ai_baset &ai, const class namespacet &ns) const override |
|
void | get_statistics (abstract_object_statisticst &statistics, abstract_object_visitedt &visited, const abstract_environmentt &env, const namespacet &ns) const override |
|
| abstract_value_objectt (const typet &type) |
|
| abstract_value_objectt (const typet &type, bool tp, bool bttm) |
|
| abstract_value_objectt (const exprt &expr, const abstract_environmentt &environment, const namespacet &ns) |
|
index_ranget | index_range (const namespacet &ns) const |
|
value_ranget | value_range () const |
|
abstract_object_pointert | expression_transform (const exprt &expr, const std::vector< abstract_object_pointert > &operands, const abstract_environmentt &environment, const namespacet &ns) const final |
| Interface for transforms. More...
|
|
| abstract_objectt (const typet &type) |
|
| 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. More...
|
|
| abstract_objectt (const exprt &expr, const abstract_environmentt &environment, const namespacet &ns) |
| Construct an abstract object from the expression. More...
|
|
| abstract_objectt (const typet &type, const exprt &expr, const abstract_environmentt &environment, const namespacet &ns) |
| Ctor for building object of types that differ from the types of input expressions. More...
|
|
virtual | ~abstract_objectt () |
|
virtual const typet & | type () const |
| Get the real type of the variable this abstract object is representing. More...
|
|
virtual bool | is_top () const |
| Find out if the abstract object is top. More...
|
|
virtual bool | is_bottom () const |
| Find out if the abstract object is bottom. More...
|
|
virtual bool | verify () const |
| Verify the internal structure of an abstract_object is correct. More...
|
|
virtual abstract_object_pointert | write (abstract_environmentt &environment, const namespacet &ns, const std::stack< exprt > &stack, const exprt &specifier, const abstract_object_pointert &value, bool merging_write) const |
| A helper function to evaluate writing to a component of an abstract object. More...
|
|
virtual void | output (std::ostream &out, const class ai_baset &ai, const namespacet &ns) const |
| Print the value of the abstract object. More...
|
|
virtual bool | has_been_modified (const abstract_object_pointert before) const |
| Determine whether 'this' abstract_object has been modified in comparison to a previous 'before' state. More...
|
|
virtual abstract_object_pointert | update_location_context (const locationst &locations, const bool update_sub_elements) const |
| Update the location context for an abstract object, potentially propogating the update to any children of this abstract object. More...
|
|
abstract_object_pointert | make_top () const |
|
abstract_object_pointert | clear_top () const |
|
virtual abstract_object_pointert | unwrap_context () const |
|
virtual abstract_object_pointert | visit_sub_elements (const abstract_object_visitort &visitor) const |
| Apply a visitor operation to all sub elements of this abstract_object. More...
|
|
|
typedef std::set< goto_programt::const_targett > | locationst |
|
typedef sharing_mapt< irep_idt, abstract_object_pointert, false, irep_id_hash > | shared_mapt |
|
static void | dump_map (std::ostream out, const shared_mapt &m) |
|
static void | dump_map_diff (std::ostream out, const shared_mapt &m1, const shared_mapt &m2) |
| Dump all elements in m1 that are different or missing in m2. More...
|
|
static abstract_object_pointert | merge (abstract_object_pointert op1, abstract_object_pointert op2, bool &out_modifications) |
| Clones the first parameter and merges it with the second. More...
|
|
static abstract_object_pointert | merge (abstract_object_pointert op1, abstract_object_pointert op2) |
|
static abstract_object_pointert | meet (abstract_object_pointert op1, abstract_object_pointert op2, bool &out_modifications) |
| Interface method for the meet operation. More...
|
|
template<class T > |
using | internal_sharing_ptrt = std::shared_ptr< T > |
|
typedef internal_sharing_ptrt< class abstract_objectt > | internal_abstract_object_pointert |
|
Definition at line 23 of file interval_abstract_value.h.
exprt interval_abstract_valuet::to_constant |
( |
| ) |
const |
|
overridevirtual |
Converts to a constant expression if possible.
- Returns
- Returns an exprt representing the value if the value is known and constant. Otherwise returns the nil expression
If abstract element represents a single value, then that value, otherwise nil. E.G. if it is an interval then this will be x if it is [x,x] This is the (sort of) dual to the constant_exprt constructor that allows an object to be built from a value.
Reimplemented from abstract_objectt.
Definition at line 264 of file interval_abstract_value.cpp.