cprover
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 <util/exception_utils.h>
15 #include <util/options.h>
16 
18 {
29  // TODO: plug in UNION_SENSITIVE HERE
31  VALUE_SET
32 };
33 
35 {
36  sensitive,
38 };
39 
41 {
47 
49 
50  struct
51  {
55 
56  struct
57  {
60 
61  static vsd_configt from_options(const optionst &options);
62 
64  static vsd_configt value_set();
65  static vsd_configt intervals();
66 
73  flow_sensitivity{flow_sensitivityt::sensitive},
74  context_tracking{false, true},
76  {
77  }
78 
79 private:
80  using option_mappingt = std::map<std::string, ABSTRACT_OBJECT_TYPET>;
81 
83  const optionst &options,
84  const std::string &option_name,
85  const option_mappingt &mapping,
86  ABSTRACT_OBJECT_TYPET default_type);
87 
89  const std::string &option_name,
90  const std::string &bad_argument,
91  const option_mappingt &mapping);
92 
98 };
99 
100 #endif // CPROVER_ANALYSES_VARIABLE_SENSITIVITY_VARIABLE_SENSITIVITY_CONFIGURATION_H // NOLINT(*)
exception_utils.h
VALUE_SET_OF_POINTERS
@ VALUE_SET_OF_POINTERS
Definition: variable_sensitivity_configuration.h:24
vsd_configt::data_dependency_context
bool data_dependency_context
Definition: variable_sensitivity_configuration.h:52
flow_sensitivityt
flow_sensitivityt
Definition: variable_sensitivity_configuration.h:35
optionst
Definition: options.h:23
vsd_configt::pointer_abstract_type
ABSTRACT_OBJECT_TYPET pointer_abstract_type
Definition: variable_sensitivity_configuration.h:43
vsd_configt::value_option_mappings
static const option_mappingt value_option_mappings
Definition: variable_sensitivity_configuration.h:93
CONSTANT
@ CONSTANT
Definition: variable_sensitivity_configuration.h:20
vsd_configt::last_write_context
bool last_write_context
Definition: variable_sensitivity_configuration.h:53
vsd_configt::value_set
static vsd_configt value_set()
Definition: variable_sensitivity_configuration.cpp:57
ARRAY_INSENSITIVE
@ ARRAY_INSENSITIVE
Definition: variable_sensitivity_configuration.h:23
vsd_configt::context_tracking
struct vsd_configt::@0 context_tracking
options.h
Options.
vsd_configt
Definition: variable_sensitivity_configuration.h:41
vsd_configt::struct_abstract_type
ABSTRACT_OBJECT_TYPET struct_abstract_type
Definition: variable_sensitivity_configuration.h:44
UNION_INSENSITIVE
@ UNION_INSENSITIVE
Definition: variable_sensitivity_configuration.h:30
flow_sensitivityt::sensitive
@ sensitive
vsd_configt::pointer_option_mappings
static const option_mappingt pointer_option_mappings
Definition: variable_sensitivity_configuration.h:94
VALUE_SET
@ VALUE_SET
Definition: variable_sensitivity_configuration.h:31
INTERVAL
@ INTERVAL
Definition: variable_sensitivity_configuration.h:21
vsd_configt::from_options
static vsd_configt from_options(const optionst &options)
Definition: variable_sensitivity_configuration.cpp:13
ARRAY_SENSITIVE
@ ARRAY_SENSITIVE
Definition: variable_sensitivity_configuration.h:22
vsd_configt::array_abstract_type
ABSTRACT_OBJECT_TYPET array_abstract_type
Definition: variable_sensitivity_configuration.h:45
TWO_VALUE
@ TWO_VALUE
Definition: variable_sensitivity_configuration.h:19
vsd_configt::new_value_set
bool new_value_set
Definition: variable_sensitivity_configuration.h:58
vsd_configt::struct_option_mappings
static const option_mappingt struct_option_mappings
Definition: variable_sensitivity_configuration.h:95
vsd_configt::array_option_mappings
static const option_mappingt array_option_mappings
Definition: variable_sensitivity_configuration.h:96
vsd_configt::invalid_argument
static invalid_command_line_argument_exceptiont invalid_argument(const std::string &option_name, const std::string &bad_argument, const option_mappingt &mapping)
Definition: variable_sensitivity_configuration.cpp:99
vsd_configt::value_abstract_type
ABSTRACT_OBJECT_TYPET value_abstract_type
Definition: variable_sensitivity_configuration.h:42
vsd_configt::option_mappingt
std::map< std::string, ABSTRACT_OBJECT_TYPET > option_mappingt
Definition: variable_sensitivity_configuration.h:80
vsd_configt::intervals
static vsd_configt intervals()
Definition: variable_sensitivity_configuration.cpp:67
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:116
vsd_configt::union_abstract_type
ABSTRACT_OBJECT_TYPET union_abstract_type
Definition: variable_sensitivity_configuration.h:46
vsd_configt::flow_sensitivity
flow_sensitivityt flow_sensitivity
Definition: variable_sensitivity_configuration.h:48
vsd_configt::constant_domain
static vsd_configt constant_domain()
Definition: variable_sensitivity_configuration.cpp:46
POINTER_SENSITIVE
@ POINTER_SENSITIVE
Definition: variable_sensitivity_configuration.h:25
POINTER_INSENSITIVE
@ POINTER_INSENSITIVE
Definition: variable_sensitivity_configuration.h:26
vsd_configt::vsd_configt
vsd_configt()
Definition: variable_sensitivity_configuration.h:67
ABSTRACT_OBJECT_TYPET
ABSTRACT_OBJECT_TYPET
Definition: variable_sensitivity_configuration.h:18
STRUCT_SENSITIVE
@ STRUCT_SENSITIVE
Definition: variable_sensitivity_configuration.h:27
vsd_configt::union_option_mappings
static const option_mappingt union_option_mappings
Definition: variable_sensitivity_configuration.h:97
vsd_configt::advanced_sensitivities
struct vsd_configt::@1 advanced_sensitivities
invalid_command_line_argument_exceptiont
Thrown when users pass incorrect command line arguments, for example passing no files to analysis or ...
Definition: exception_utils.h:38
STRUCT_INSENSITIVE
@ STRUCT_INSENSITIVE
Definition: variable_sensitivity_configuration.h:28