@@ -64,7 +64,7 @@ class bmct:public safety_checkert
64
64
// / `path_storage` and using it to construct a path_explorert
65
65
// / object.
66
66
bmct (
67
- const optionst &_options,
67
+ optionst &_options,
68
68
const symbol_tablet &outer_symbol_table,
69
69
message_handlert &_message_handler,
70
70
prop_convt &_prop_conv,
@@ -76,14 +76,21 @@ class bmct:public safety_checkert
76
76
ns(outer_symbol_table, symex_symbol_table),
77
77
equation(),
78
78
path_storage(_path_storage),
79
- symex(_message_handler, outer_symbol_table, equation, path_storage),
79
+ symex(
80
+ _message_handler,
81
+ outer_symbol_table,
82
+ equation,
83
+ options,
84
+ path_storage),
80
85
prop_conv(_prop_conv),
81
86
ui(ui_message_handlert::uit::PLAIN),
82
87
driver_callback_after_symex(callback_after_symex)
83
88
{
84
89
symex.constant_propagation =options.get_bool_option (" propagation" );
85
90
symex.record_coverage =
86
91
!options.get_option (" symex-coverage-report" ).empty ();
92
+ options.set_option (" simplify" , true );
93
+ options.set_option (" assertions" , true );
87
94
}
88
95
89
96
virtual resultt run (const goto_functionst &goto_functions)
@@ -118,7 +125,7 @@ class bmct:public safety_checkert
118
125
119
126
static int do_language_agnostic_bmc (
120
127
const path_strategy_choosert &path_strategy_chooser,
121
- const optionst &opts,
128
+ optionst &opts,
122
129
abstract_goto_modelt &goto_model,
123
130
const ui_message_handlert::uit &ui,
124
131
messaget &message,
@@ -135,7 +142,7 @@ class bmct:public safety_checkert
135
142
// / symex_target_equationt. See the documentation for path_explorert for
136
143
// / details.
137
144
bmct (
138
- const optionst &_options,
145
+ optionst &_options,
139
146
const symbol_tablet &outer_symbol_table,
140
147
message_handlert &_message_handler,
141
148
prop_convt &_prop_conv,
@@ -148,21 +155,28 @@ class bmct:public safety_checkert
148
155
ns(outer_symbol_table),
149
156
equation(_equation),
150
157
path_storage(_path_storage),
151
- symex(_message_handler, outer_symbol_table, equation, path_storage),
158
+ symex(
159
+ _message_handler,
160
+ outer_symbol_table,
161
+ equation,
162
+ options,
163
+ path_storage),
152
164
prop_conv(_prop_conv),
153
165
ui(ui_message_handlert::uit::PLAIN),
154
166
driver_callback_after_symex(callback_after_symex)
155
167
{
156
168
symex.constant_propagation = options.get_bool_option (" propagation" );
157
169
symex.record_coverage =
158
170
!options.get_option (" symex-coverage-report" ).empty ();
171
+ options.set_option (" simplify" , true );
172
+ options.set_option (" assertions" , true );
159
173
INVARIANT (
160
174
options.get_bool_option (" paths" ),
161
175
" Should only use saved equation & goto_state constructor "
162
176
" when doing path exploration" );
163
177
}
164
178
165
- const optionst &options;
179
+ optionst &options;
166
180
// / \brief symbol table for the goto-program that we will execute
167
181
const symbol_tablet &outer_symbol_table;
168
182
// / \brief symbol table generated during symbolic execution
@@ -252,7 +266,7 @@ class path_explorert : public bmct
252
266
{
253
267
public:
254
268
path_explorert (
255
- const optionst &_options,
269
+ optionst &_options,
256
270
const symbol_tablet &outer_symbol_table,
257
271
message_handlert &_message_handler,
258
272
prop_convt &_prop_conv,
0 commit comments