CBMC
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 
20 {
31  // TODO: plug in UNION_SENSITIVE HERE
35 };
36 
38 {
39  sensitive,
41 };
42 
44 {
50 
52 
53  size_t maximum_array_index = 0;
54 
55  struct
56  {
57  bool liveness;
61 
62  static vsd_configt from_options(const optionst &options);
63 
65  static vsd_configt value_set();
66  static vsd_configt intervals();
67 
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 
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 
102 };
103 
104 #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