Skip to content

Commit 8497305

Browse files
authored
Merge pull request #7850 from remi-delmas-3000/contracts-fix-locations
CONTRACTS: add missing source locations
2 parents 08a466d + d01248a commit 8497305

File tree

2 files changed

+13
-12
lines changed

2 files changed

+13
-12
lines changed

src/goto-instrument/contracts/dynamic-frames/dfcc_instrument_loop.cpp

+10-10
Original file line numberDiff line numberDiff line change
@@ -249,8 +249,8 @@ dfcc_instrument_loopt::add_prehead_instructions(
249249
{
250250
pre_loop_head_instrs.add(
251251
goto_programt::make_decl(entered_loop, loop_head_location));
252-
pre_loop_head_instrs.add(
253-
goto_programt::make_assignment(entered_loop, false_exprt{}));
252+
pre_loop_head_instrs.add(goto_programt::make_assignment(
253+
entered_loop, false_exprt{}, loop_head_location));
254254
}
255255

256256
// initial_invariant = <loop_invariant>;
@@ -276,8 +276,8 @@ dfcc_instrument_loopt::add_prehead_instructions(
276276
// in_base_case = true;
277277
pre_loop_head_instrs.add(
278278
goto_programt::make_decl(in_base_case, loop_head_location));
279-
pre_loop_head_instrs.add(
280-
goto_programt::make_assignment(in_base_case, true_exprt{}));
279+
pre_loop_head_instrs.add(goto_programt::make_assignment(
280+
in_base_case, true_exprt{}, loop_head_location));
281281
}
282282

283283
{
@@ -417,11 +417,11 @@ dfcc_instrument_loopt::add_step_instructions(
417417
loop_head_location);
418418
step_instrs.add(
419419
goto_programt::make_decl(in_loop_havoc_block, loop_head_location));
420-
step_instrs.add(
421-
goto_programt::make_assignment(in_loop_havoc_block, true_exprt{}));
420+
step_instrs.add(goto_programt::make_assignment(
421+
in_loop_havoc_block, true_exprt{}, loop_head_location));
422422
step_instrs.destructive_append(havoc_instrs);
423-
step_instrs.add(
424-
goto_programt::make_assignment(in_loop_havoc_block, false_exprt{}));
423+
step_instrs.add(goto_programt::make_assignment(
424+
in_loop_havoc_block, false_exprt{}, loop_head_location));
425425
}
426426

427427
goto_convertt converter(symbol_table, log.get_message_handler());
@@ -490,8 +490,8 @@ void dfcc_instrument_loopt::add_body_instructions(
490490

491491
{
492492
// Record that we entered the loop with `entered_loop = true`.
493-
pre_loop_latch_instrs.add(
494-
goto_programt::make_assignment(entered_loop, true_exprt{}));
493+
pre_loop_latch_instrs.add(goto_programt::make_assignment(
494+
entered_loop, true_exprt{}, loop_head_location));
495495
}
496496

497497
{

src/goto-instrument/contracts/dynamic-frames/dfcc_spec_functions.cpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ void dfcc_spec_functionst::generate_havoc_instructions(
205205
"__havoc_target",
206206
location);
207207

208-
havoc_program.add(goto_programt::make_decl(target_expr));
208+
havoc_program.add(goto_programt::make_decl(target_expr, location));
209209

210210
call.lhs() = target_expr;
211211
havoc_program.add(goto_programt::make_function_call(call, location));
@@ -221,7 +221,8 @@ void dfcc_spec_functionst::generate_havoc_instructions(
221221
target_expr, pointer_type(target_type))},
222222
nondet,
223223
location));
224-
auto label = havoc_program.add(goto_programt::make_dead(target_expr));
224+
auto label =
225+
havoc_program.add(goto_programt::make_dead(target_expr, location));
225226
goto_instruction->complete_goto(label);
226227
}
227228
else if(

0 commit comments

Comments
 (0)