@@ -80,24 +80,12 @@ class goto_symext
80
80
{
81
81
}
82
82
83
- virtual ~goto_symext ()
84
- {
85
- }
83
+ virtual ~goto_symext () = default ;
86
84
87
85
typedef
88
86
std::function<const goto_functionst::goto_functiont &(const irep_idt &)>
89
87
get_goto_functiont;
90
88
91
- // / \brief symex entire program starting from entry point
92
- // /
93
- // / The state that goto_symext maintains has a large memory footprint.
94
- // / This method deallocates the state as soon as symbolic execution
95
- // / has completed, so use it if you don't care about having the state
96
- // / around afterwards.
97
- virtual void symex_from_entry_point_of (
98
- const goto_functionst &goto_functions,
99
- symbol_tablet &new_symbol_table);
100
-
101
89
// / \brief symex entire program starting from entry point
102
90
// /
103
91
// / The state that goto_symext maintains has a large memory footprint.
@@ -115,7 +103,7 @@ class goto_symext
115
103
virtual void resume_symex_from_saved_state (
116
104
const get_goto_functiont &get_goto_function,
117
105
const statet &saved_state,
118
- symex_target_equationt *const saved_equation,
106
+ symex_target_equationt *saved_equation,
119
107
symbol_tablet &new_symbol_table);
120
108
121
109
// // \brief symex entire program starting from entry point
@@ -142,38 +130,6 @@ class goto_symext
142
130
const get_goto_functiont &,
143
131
symbol_tablet &);
144
132
145
- // / Symexes from the first instruction and the given state, terminating as
146
- // / soon as the last instruction is reached. This is useful to explicitly
147
- // / symex certain ranges of a program, e.g. in an incremental decision
148
- // / procedure.
149
- // / \param state Symex state to start with.
150
- // / \param goto_functions GOTO model to symex.
151
- // / \param function_identifier The function with the instruction range
152
- // / \param first Entry point in form of a first instruction.
153
- // / \param limit Final instruction, which itself will not be symexed.
154
- virtual void symex_instruction_range (
155
- statet &,
156
- const goto_functionst &,
157
- const irep_idt &function_identifier,
158
- goto_programt::const_targett first,
159
- goto_programt::const_targett limit);
160
-
161
- // / Symexes from the first instruction and the given state, terminating as
162
- // / soon as the last instruction is reached. This is useful to explicitly
163
- // / symex certain ranges of a program, e.g. in an incremental decision
164
- // / procedure.
165
- // / \param state Symex state to start with.
166
- // / \param get_goto_function retrieves a function body
167
- // / \param function_identifier The function with the instruction range
168
- // / \param first Entry point in form of a first instruction.
169
- // / \param limit Final instruction, which itself will not be symexed.
170
- virtual void symex_instruction_range (
171
- statet &state,
172
- const get_goto_functiont &get_goto_function,
173
- const irep_idt &function_identifier,
174
- goto_programt::const_targett first,
175
- goto_programt::const_targett limit);
176
-
177
133
// / \brief Have states been pushed onto the workqueue?
178
134
// /
179
135
// / If this flag is set at the end of a symbolic execution run, it means that
@@ -215,8 +171,6 @@ class goto_symext
215
171
const bool allow_pointer_unsoundness;
216
172
217
173
public:
218
- // these bypass the target maps
219
- virtual void symex_step_goto (statet &, bool taken);
220
174
221
175
// / language_mode: ID_java, ID_C or another language identifier
222
176
// / if we know the source language in use, irep_idt() otherwise.
@@ -263,13 +217,9 @@ class goto_symext
263
217
void initialize_auto_object (const exprt &, statet &);
264
218
void process_array_expr (exprt &);
265
219
exprt make_auto_object (const typet &, statet &);
266
- virtual void dereference (exprt &, statet &, const bool write);
220
+ virtual void dereference (exprt &, statet &, bool write);
267
221
268
- void dereference_rec (
269
- exprt &,
270
- statet &,
271
- guardt &,
272
- const bool write);
222
+ void dereference_rec (exprt &, statet &, guardt &, bool write);
273
223
274
224
void dereference_rec_address_of (
275
225
exprt &,
@@ -292,13 +242,13 @@ class goto_symext
292
242
virtual void symex_transition (
293
243
statet &,
294
244
goto_programt::const_targett to,
295
- bool is_backwards_goto= false );
245
+ bool is_backwards_goto);
296
246
297
247
virtual void symex_transition (statet &state)
298
248
{
299
249
goto_programt::const_targett next=state.source .pc ;
300
250
++next;
301
- symex_transition (state, next);
251
+ symex_transition (state, next, false );
302
252
}
303
253
304
254
virtual void symex_goto (statet &);
@@ -334,7 +284,7 @@ class goto_symext
334
284
335
285
// determine whether to unwind a loop -- true indicates abort,
336
286
// with false we continue.
337
- virtual bool get_unwind (
287
+ virtual bool should_stop_unwind (
338
288
const symex_targett::sourcet &source,
339
289
const goto_symex_statet::call_stackt &context,
340
290
unsigned unwind);
@@ -369,24 +319,20 @@ class goto_symext
369
319
370
320
virtual bool get_unwind_recursion (
371
321
const irep_idt &identifier,
372
- const unsigned thread_nr,
322
+ unsigned thread_nr,
373
323
unsigned unwind);
374
324
375
325
void parameter_assignments (
376
- const irep_idt function_identifier,
326
+ const irep_idt & function_identifier,
377
327
const goto_functionst::goto_functiont &,
378
328
statet &,
379
329
const exprt::operandst &arguments);
380
330
381
331
void locality (
382
- const irep_idt function_identifier,
332
+ const irep_idt & function_identifier,
383
333
statet &,
384
334
const goto_functionst::goto_functiont &);
385
335
386
- void add_end_of_function (
387
- exprt &code,
388
- const irep_idt &identifier);
389
-
390
336
nondet_symbol_exprt build_symex_nondet (typet &type);
391
337
392
338
// exceptions
@@ -471,7 +417,6 @@ class goto_symext
471
417
static unsigned nondet_count;
472
418
static unsigned dynamic_counter;
473
419
474
- void read (exprt &);
475
420
void replace_nondet (exprt &);
476
421
void rewrite_quantifiers (exprt &, statet &);
477
422
0 commit comments