31
31
property_checker_resultt word_level_bmc (
32
32
const cmdlinet &cmdline,
33
33
const transition_systemt &transition_system,
34
- ebmc_propertiest &properties,
34
+ const ebmc_propertiest &properties,
35
35
message_handlert &message_handler)
36
36
{
37
37
auto solver_factory = ebmc_solver_factory (cmdline);
@@ -61,6 +61,8 @@ property_checker_resultt word_level_bmc(
61
61
result=finish_word_level_bmc(solver);
62
62
#endif
63
63
}
64
+
65
+ return property_checker_resultt{properties};
64
66
}
65
67
else
66
68
{
@@ -83,7 +85,7 @@ property_checker_resultt word_level_bmc(
83
85
84
86
bool bmc_with_assumptions = cmdline.isset (" bmc-with-assumptions" );
85
87
86
- bmc (
88
+ auto result = bmc (
87
89
bound,
88
90
convert_only,
89
91
bmc_with_assumptions,
@@ -94,6 +96,8 @@ property_checker_resultt word_level_bmc(
94
96
95
97
if (convert_only)
96
98
return property_checker_resultt::success ();
99
+
100
+ return result;
97
101
}
98
102
}
99
103
@@ -115,8 +119,6 @@ property_checker_resultt word_level_bmc(
115
119
{
116
120
return property_checker_resultt::error ();
117
121
}
118
-
119
- return property_checker_resultt{properties};
120
122
}
121
123
122
124
property_checker_resultt finish_bit_level_bmc (
@@ -394,7 +396,7 @@ property_checker_resultt engine_heuristic(
394
396
// Now try BMC with bound 5, word-level
395
397
message.status () << " Attempting BMC with bound 5" << messaget::eom;
396
398
397
- bmc (
399
+ auto bmc_result = bmc (
398
400
5 , // bound
399
401
false , // convert_only
400
402
cmdline.isset (" bmc-with-assumptions" ),
@@ -403,6 +405,8 @@ property_checker_resultt engine_heuristic(
403
405
solver_factory,
404
406
message_handler);
405
407
408
+ properties.properties = std::move (bmc_result.properties );
409
+
406
410
if (!properties.has_unfinished_property ())
407
411
return property_checker_resultt{properties}; // done
408
412
0 commit comments