@@ -65,92 +65,11 @@ struct vsd_configt
65
65
bool new_value_set;
66
66
} advanced_sensitivities;
67
67
68
- static vsd_configt from_options (const optionst &options)
69
- {
70
- vsd_configt config{};
71
-
72
- if (
73
- options.get_bool_option (" value-set" ) &&
74
- options.get_bool_option (" data-dependencies" ))
75
- {
76
- throw invalid_command_line_argument_exceptiont{
77
- " Value set is not currently supported with data dependency analysis" ,
78
- " --value-set --data-dependencies" ,
79
- " --data-dependencies" };
80
- }
81
-
82
- config.value_abstract_type = option_to_abstract_type (
83
- options,
84
- " values" ,
85
- value_option_mappings,
86
- CONSTANT
87
- );
88
-
89
- config.pointer_abstract_type = option_to_abstract_type (
90
- options,
91
- " pointers" ,
92
- pointer_option_mappings,
93
- POINTER_INSENSITIVE
94
- );
95
-
96
- config.struct_abstract_type = option_to_abstract_type (
97
- options,
98
- " structs" ,
99
- struct_option_mappings,
100
- STRUCT_INSENSITIVE
101
- );
102
-
103
- config.array_abstract_type = option_to_abstract_type (
104
- options,
105
- " arrays" ,
106
- array_option_mappings,
107
- ARRAY_INSENSITIVE
108
- );
109
-
110
- // This should always be on (for efficeny with 3-way merge)
111
- // Does not work with value set
112
- config.context_tracking .last_write_context =
113
- (config.value_abstract_type != VALUE_SET) &&
114
- (config.pointer_abstract_type != VALUE_SET);
115
- config.context_tracking .data_dependency_context =
116
- options.get_bool_option (" data-dependencies" );
117
- config.advanced_sensitivities .new_value_set =
118
- options.get_bool_option (" new-value-set" );
119
-
120
- return config;
121
- }
122
-
123
- static vsd_configt constant_domain ()
124
- {
125
- vsd_configt config{};
126
- config.context_tracking .last_write_context = true ;
127
- config.value_abstract_type = CONSTANT;
128
- config.pointer_abstract_type = POINTER_SENSITIVE;
129
- config.struct_abstract_type = STRUCT_SENSITIVE;
130
- config.array_abstract_type = ARRAY_SENSITIVE;
131
- return config;
132
- }
68
+ static vsd_configt from_options (const optionst &options);
133
69
134
- static vsd_configt value_set ()
135
- {
136
- vsd_configt config{};
137
- config.value_abstract_type = VALUE_SET;
138
- config.pointer_abstract_type = VALUE_SET;
139
- config.struct_abstract_type = STRUCT_SENSITIVE;
140
- config.array_abstract_type = ARRAY_SENSITIVE;
141
- return config;
142
- }
143
-
144
- static vsd_configt intervals ()
145
- {
146
- vsd_configt config{};
147
- config.context_tracking .last_write_context = true ;
148
- config.value_abstract_type = INTERVAL;
149
- config.pointer_abstract_type = POINTER_SENSITIVE;
150
- config.struct_abstract_type = STRUCT_SENSITIVE;
151
- config.array_abstract_type = ARRAY_SENSITIVE;
152
- return config;
153
- }
70
+ static vsd_configt constant_domain ();
71
+ static vsd_configt value_set ();
72
+ static vsd_configt intervals ();
154
73
155
74
private:
156
75
using option_mappingt = std::map<std::string, ABSTRACT_OBJECT_TYPET>;
0 commit comments