cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
variable_sensitivity_configuration.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module: variable sensitivity configuration
4
5
Author: Jez Higgins
6
7
\*******************************************************************/
11
#ifndef CPROVER_ANALYSES_VARIABLE_SENSITIVITY_VARIABLE_SENSITIVITY_CONFIGURATION_H
12
#define CPROVER_ANALYSES_VARIABLE_SENSITIVITY_VARIABLE_SENSITIVITY_CONFIGURATION_H
13
14
#include <map>
15
#include <string>
16
17
class
optionst
;
18
19
enum
ABSTRACT_OBJECT_TYPET
20
{
21
TWO_VALUE
,
22
CONSTANT
,
23
INTERVAL
,
24
ARRAY_SENSITIVE
,
25
ARRAY_INSENSITIVE
,
26
VALUE_SET_OF_POINTERS
,
27
POINTER_SENSITIVE
,
28
POINTER_INSENSITIVE
,
29
STRUCT_SENSITIVE
,
30
STRUCT_INSENSITIVE
,
31
// TODO: plug in UNION_SENSITIVE HERE
32
UNION_INSENSITIVE
,
33
VALUE_SET
,
34
HEAP_ALLOCATION
35
};
36
37
enum class
flow_sensitivityt
38
{
39
sensitive
,
40
insensitive
41
};
42
43
struct
vsd_configt
44
{
45
ABSTRACT_OBJECT_TYPET
value_abstract_type
;
46
ABSTRACT_OBJECT_TYPET
pointer_abstract_type
;
47
ABSTRACT_OBJECT_TYPET
struct_abstract_type
;
48
ABSTRACT_OBJECT_TYPET
array_abstract_type
;
49
ABSTRACT_OBJECT_TYPET
union_abstract_type
;
50
51
flow_sensitivityt
flow_sensitivity
;
52
53
size_t
maximum_array_index
= 0;
54
55
struct
56
{
57
bool
liveness
;
58
bool
data_dependency_context
;
59
bool
last_write_context
;
60
}
context_tracking
;
61
62
static
vsd_configt
from_options
(
const
optionst
&options);
63
64
static
vsd_configt
constant_domain
();
65
static
vsd_configt
value_set
();
66
static
vsd_configt
intervals
();
67
68
vsd_configt
()
69
:
value_abstract_type
{
CONSTANT
},
70
pointer_abstract_type
{
POINTER_INSENSITIVE
},
71
struct_abstract_type
{
STRUCT_INSENSITIVE
},
72
array_abstract_type
{
ARRAY_INSENSITIVE
},
73
union_abstract_type
{
UNION_INSENSITIVE
},
74
flow_sensitivity
{
flow_sensitivityt
::
sensitive
},
75
context_tracking
{false, true}
76
{
77
}
78
79
private
:
80
using
option_mappingt
= std::map<std::string, ABSTRACT_OBJECT_TYPET>;
81
using
option_size_mappingt
= std::map<std::string, size_t>;
82
83
static
ABSTRACT_OBJECT_TYPET
option_to_abstract_type
(
84
const
optionst
&options,
85
const
std::string &option_name,
86
const
option_mappingt
&mapping,
87
ABSTRACT_OBJECT_TYPET
default_type);
88
89
static
size_t
configure_max_array_size
(
const
optionst
&options);
90
91
static
size_t
option_to_size
(
92
const
optionst
&options,
93
const
std::string &option_name,
94
const
option_size_mappingt
&mapping);
95
96
static
const
option_mappingt
value_option_mappings
;
97
static
const
option_mappingt
pointer_option_mappings
;
98
static
const
option_mappingt
struct_option_mappings
;
99
static
const
option_mappingt
array_option_mappings
;
100
static
const
option_size_mappingt
array_option_size_mappings
;
101
static
const
option_mappingt
union_option_mappings
;
102
};
103
104
#endif
// CPROVER_ANALYSES_VARIABLE_SENSITIVITY_VARIABLE_SENSITIVITY_CONFIGURATION_H // NOLINT(*)
optionst
Definition
options.h:23
vsd_configt
Definition
variable_sensitivity_configuration.h:44
vsd_configt::option_mappingt
std::map< std::string, ABSTRACT_OBJECT_TYPET > option_mappingt
Definition
variable_sensitivity_configuration.h:80
vsd_configt::value_set
static vsd_configt value_set()
Definition
variable_sensitivity_configuration.cpp:69
vsd_configt::array_option_mappings
static const option_mappingt array_option_mappings
Definition
variable_sensitivity_configuration.h:106
vsd_configt::option_to_abstract_type
static ABSTRACT_OBJECT_TYPET option_to_abstract_type(const optionst &options, const std::string &option_name, const option_mappingt &mapping, ABSTRACT_OBJECT_TYPET default_type)
Definition
variable_sensitivity_configuration.cpp:140
vsd_configt::union_abstract_type
ABSTRACT_OBJECT_TYPET union_abstract_type
Definition
variable_sensitivity_configuration.h:49
vsd_configt::last_write_context
bool last_write_context
Definition
variable_sensitivity_configuration.h:59
vsd_configt::pointer_abstract_type
ABSTRACT_OBJECT_TYPET pointer_abstract_type
Definition
variable_sensitivity_configuration.h:46
vsd_configt::struct_option_mappings
static const option_mappingt struct_option_mappings
Definition
variable_sensitivity_configuration.h:102
vsd_configt::flow_sensitivity
flow_sensitivityt flow_sensitivity
Definition
variable_sensitivity_configuration.h:51
vsd_configt::value_option_mappings
static const option_mappingt value_option_mappings
Definition
variable_sensitivity_configuration.h:92
vsd_configt::pointer_option_mappings
static const option_mappingt pointer_option_mappings
Definition
variable_sensitivity_configuration.h:97
vsd_configt::array_option_size_mappings
static const option_size_mappingt array_option_size_mappings
Definition
variable_sensitivity_configuration.h:113
vsd_configt::data_dependency_context
bool data_dependency_context
Definition
variable_sensitivity_configuration.h:58
vsd_configt::vsd_configt
vsd_configt()
Definition
variable_sensitivity_configuration.h:68
vsd_configt::configure_max_array_size
static size_t configure_max_array_size(const optionst &options)
Definition
variable_sensitivity_configuration.cpp:159
vsd_configt::liveness
bool liveness
Definition
variable_sensitivity_configuration.h:57
vsd_configt::union_option_mappings
static const option_mappingt union_option_mappings
Definition
variable_sensitivity_configuration.h:119
vsd_configt::intervals
static vsd_configt intervals()
Definition
variable_sensitivity_configuration.cpp:80
vsd_configt::from_options
static vsd_configt from_options(const optionst &options)
Definition
variable_sensitivity_configuration.cpp:22
vsd_configt::maximum_array_index
size_t maximum_array_index
Definition
variable_sensitivity_configuration.h:53
vsd_configt::struct_abstract_type
ABSTRACT_OBJECT_TYPET struct_abstract_type
Definition
variable_sensitivity_configuration.h:47
vsd_configt::constant_domain
static vsd_configt constant_domain()
Definition
variable_sensitivity_configuration.cpp:57
vsd_configt::option_size_mappingt
std::map< std::string, size_t > option_size_mappingt
Definition
variable_sensitivity_configuration.h:81
vsd_configt::array_abstract_type
ABSTRACT_OBJECT_TYPET array_abstract_type
Definition
variable_sensitivity_configuration.h:48
vsd_configt::option_to_size
static size_t option_to_size(const optionst &options, const std::string &option_name, const option_size_mappingt &mapping)
Definition
variable_sensitivity_configuration.cpp:170
vsd_configt::context_tracking
struct vsd_configt::@322011005157016232002211332251344357171250203240 context_tracking
vsd_configt::value_abstract_type
ABSTRACT_OBJECT_TYPET value_abstract_type
Definition
variable_sensitivity_configuration.h:45
flow_sensitivityt
flow_sensitivityt
Definition
variable_sensitivity_configuration.h:38
flow_sensitivityt::sensitive
@ sensitive
Definition
variable_sensitivity_configuration.h:39
flow_sensitivityt::insensitive
@ insensitive
Definition
variable_sensitivity_configuration.h:40
ABSTRACT_OBJECT_TYPET
ABSTRACT_OBJECT_TYPET
Definition
variable_sensitivity_configuration.h:20
ARRAY_SENSITIVE
@ ARRAY_SENSITIVE
Definition
variable_sensitivity_configuration.h:24
INTERVAL
@ INTERVAL
Definition
variable_sensitivity_configuration.h:23
UNION_INSENSITIVE
@ UNION_INSENSITIVE
Definition
variable_sensitivity_configuration.h:32
VALUE_SET_OF_POINTERS
@ VALUE_SET_OF_POINTERS
Definition
variable_sensitivity_configuration.h:26
HEAP_ALLOCATION
@ HEAP_ALLOCATION
Definition
variable_sensitivity_configuration.h:34
TWO_VALUE
@ TWO_VALUE
Definition
variable_sensitivity_configuration.h:21
POINTER_INSENSITIVE
@ POINTER_INSENSITIVE
Definition
variable_sensitivity_configuration.h:28
CONSTANT
@ CONSTANT
Definition
variable_sensitivity_configuration.h:22
ARRAY_INSENSITIVE
@ ARRAY_INSENSITIVE
Definition
variable_sensitivity_configuration.h:25
STRUCT_SENSITIVE
@ STRUCT_SENSITIVE
Definition
variable_sensitivity_configuration.h:29
VALUE_SET
@ VALUE_SET
Definition
variable_sensitivity_configuration.h:33
STRUCT_INSENSITIVE
@ STRUCT_INSENSITIVE
Definition
variable_sensitivity_configuration.h:30
POINTER_SENSITIVE
@ POINTER_SENSITIVE
Definition
variable_sensitivity_configuration.h:27
analyses
variable-sensitivity
variable_sensitivity_configuration.h
Generated by
1.17.0