File tree Expand file tree Collapse file tree 2 files changed +14
-1
lines changed Expand file tree Collapse file tree 2 files changed +14
-1
lines changed Original file line number Diff line number Diff line change @@ -321,6 +321,10 @@ class goto_symext
321
321
// / Symbolically execute a DEAD instruction
322
322
// / \param state: Symbolic execution state for current instruction
323
323
virtual void symex_dead (statet &state);
324
+ // / Kill a symbol, as if it had been the subject of a DEAD instruction
325
+ // / \param state: Symbolic execution state
326
+ // / \param symbol_expr: Symbol to kill
327
+ void symex_dead (statet &state, const symbol_exprt &symbol_expr);
324
328
// / Symbolically execute an OTHER instruction
325
329
// / \param state: Symbolic execution state for current instruction
326
330
virtual void symex_other (statet &state);
Original file line number Diff line number Diff line change @@ -21,8 +21,17 @@ void goto_symext::symex_dead(statet &state)
21
21
const goto_programt::instructiont &instruction=*state.source .pc ;
22
22
23
23
const code_deadt &code = instruction.get_dead ();
24
+ symex_dead (state, code.symbol ());
25
+ }
24
26
25
- ssa_exprt ssa = state.rename_ssa <L1>(ssa_exprt{code.symbol ()}, ns).get ();
27
+ void goto_symext::symex_dead (statet &state, const symbol_exprt &symbol_expr)
28
+ {
29
+ ssa_exprt ssa = state
30
+ .rename_ssa <L1>(
31
+ is_ssa_expr (symbol_expr) ? to_ssa_expr (symbol_expr)
32
+ : ssa_exprt{symbol_expr},
33
+ ns)
34
+ .get ();
26
35
27
36
const exprt fields = state.field_sensitivity .get_fields (ns, state, ssa);
28
37
find_symbols_sett fields_set;
You can’t perform that action at this time.
0 commit comments