cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
two_value_union_abstract_object.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module: analyses variable-sensitivity
4
5
Author: Fotis Koutoulakis, fotis.koutoulakis@diffblue.com
6
7
\*******************************************************************/
8
11
12
#ifndef CPROVER_ANALYSES_VARIABLE_SENSITIVITY_UNION_ABSTRACT_OBJECT_H
13
#define CPROVER_ANALYSES_VARIABLE_SENSITIVITY_UNION_ABSTRACT_OBJECT_H
14
15
#include <
analyses/variable-sensitivity/abstract_aggregate_object.h
>
16
17
class
two_value_union_abstract_objectt
:
public
abstract_aggregate_objectt
<
18
two_value_union_abstract_objectt,
19
union_aggregate_typet>
20
{
21
public
:
22
typedef
abstract_aggregate_objectt
<
23
two_value_union_abstract_objectt
,
24
union_aggregate_typet
>
25
abstract_aggregate_baset
;
26
33
two_value_union_abstract_objectt
(
const
typet
&
type
,
bool
top
,
bool
bottom
)
34
:
abstract_aggregate_baset
(
type
,
top
,
bottom
)
35
{
36
}
37
43
explicit
two_value_union_abstract_objectt
(
44
const
exprt
&expr,
45
const
abstract_environmentt
&environment,
46
const
namespacet
&ns)
47
:
abstract_aggregate_baset
(expr, environment, ns)
48
{
49
}
50
51
protected
:
52
void
statistics
(
53
abstract_object_statisticst
&
statistics
,
54
abstract_object_visitedt
&visited,
55
const
abstract_environmentt
&env,
56
const
namespacet
&ns)
const override
57
{
58
}
59
};
60
#endif
// CPROVER_ANALYSES_VARIABLE_SENSITIVITY_UNION_ABSTRACT_OBJECT_H
abstract_aggregate_object.h
Common behaviour for abstract objects modelling aggregate values - arrays, structs,...
abstract_object_visitedt
std::set< abstract_object_pointert > abstract_object_visitedt
Definition
abstract_object.h:70
abstract_aggregate_objectt< two_value_union_abstract_objectt, union_aggregate_typet >::abstract_aggregate_objectt
abstract_aggregate_objectt(const typet &type, bool tp, bool bttm)
Definition
abstract_aggregate_object.h:33
abstract_environmentt
Definition
abstract_environment.h:39
abstract_objectt::top
bool top
Definition
abstract_object.h:371
abstract_objectt::bottom
bool bottom
Definition
abstract_object.h:370
abstract_objectt::type
virtual const typet & type() const
Get the real type of the variable this abstract object is representing.
Definition
abstract_object.cpp:33
exprt
Base class for all expressions.
Definition
expr.h:57
namespacet
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition
namespace.h:91
two_value_union_abstract_objectt::two_value_union_abstract_objectt
two_value_union_abstract_objectt(const exprt &expr, const abstract_environmentt &environment, const namespacet &ns)
Definition
two_value_union_abstract_object.h:43
two_value_union_abstract_objectt::statistics
void statistics(abstract_object_statisticst &statistics, abstract_object_visitedt &visited, const abstract_environmentt &env, const namespacet &ns) const override
Definition
two_value_union_abstract_object.h:52
two_value_union_abstract_objectt::abstract_aggregate_baset
abstract_aggregate_objectt< two_value_union_abstract_objectt, union_aggregate_typet > abstract_aggregate_baset
Definition
two_value_union_abstract_object.h:25
two_value_union_abstract_objectt::two_value_union_abstract_objectt
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.
Definition
two_value_union_abstract_object.h:33
typet
The type of an expression, extends irept.
Definition
type.h:29
abstract_object_statisticst
Definition
abstract_object_statistics.h:19
union_aggregate_typet
Definition
abstract_aggregate_object.h:217
analyses
variable-sensitivity
two_value_union_abstract_object.h
Generated by
1.17.0