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 <map>
15 
16 #include <util/exception_utils.h>
17 
18 class optionst;
19 
21 {
32  // TODO: plug in UNION_SENSITIVE HERE
36 };
37 
39 {
40  sensitive,
42 };
43 
45 {
51 
53 
54  size_t maximum_array_index = 0;
55 
56  struct
57  {
58  bool liveness;
62 
63  static vsd_configt from_options(const optionst &options);
64 
66  static vsd_configt value_set();
67  static vsd_configt intervals();
68 
76  context_tracking{false, true}
77  {
78  }
79 
80 private:
81  using option_mappingt = std::map<std::string, ABSTRACT_OBJECT_TYPET>;
82  using option_size_mappingt = std::map<std::string, size_t>;
83 
85  const optionst &options,
86  const std::string &option_name,
87  const option_mappingt &mapping,
88  ABSTRACT_OBJECT_TYPET default_type);
89 
90  static size_t configure_max_array_size(const optionst &options);
91 
92  static size_t option_to_size(
93  const optionst &options,
94  const std::string &option_name,
95  const option_size_mappingt &mapping);
96 
103 };
104 
105 #endif // CPROVER_ANALYSES_VARIABLE_SENSITIVITY_VARIABLE_SENSITIVITY_CONFIGURATION_H // NOLINT(*)
std::map< std::string, ABSTRACT_OBJECT_TYPET > option_mappingt
static vsd_configt value_set()
static const option_mappingt array_option_mappings
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)
ABSTRACT_OBJECT_TYPET union_abstract_type
struct vsd_configt::@0 context_tracking
ABSTRACT_OBJECT_TYPET pointer_abstract_type
static const option_mappingt struct_option_mappings
flow_sensitivityt flow_sensitivity
static const option_mappingt value_option_mappings
static const option_mappingt pointer_option_mappings
static const option_size_mappingt array_option_size_mappings
static size_t configure_max_array_size(const optionst &options)
static const option_mappingt union_option_mappings
static vsd_configt intervals()
static vsd_configt from_options(const optionst &options)
ABSTRACT_OBJECT_TYPET struct_abstract_type
static vsd_configt constant_domain()
std::map< std::string, size_t > option_size_mappingt
ABSTRACT_OBJECT_TYPET array_abstract_type
static size_t option_to_size(const optionst &options, const std::string &option_name, const option_size_mappingt &mapping)
ABSTRACT_OBJECT_TYPET value_abstract_type