3131property_checker_resultt word_level_bmc (
3232 const cmdlinet &cmdline,
3333 const transition_systemt &transition_system,
34- ebmc_propertiest &properties,
34+ const ebmc_propertiest &properties,
3535 message_handlert &message_handler)
3636{
3737 auto solver_factory = ebmc_solver_factory (cmdline);
@@ -61,6 +61,8 @@ property_checker_resultt word_level_bmc(
6161 result=finish_word_level_bmc(solver);
6262#endif
6363 }
64+
65+ return property_checker_resultt{properties};
6466 }
6567 else
6668 {
@@ -83,7 +85,7 @@ property_checker_resultt word_level_bmc(
8385
8486 bool bmc_with_assumptions = cmdline.isset (" bmc-with-assumptions" );
8587
86- bmc (
88+ auto result = bmc (
8789 bound,
8890 convert_only,
8991 bmc_with_assumptions,
@@ -94,6 +96,8 @@ property_checker_resultt word_level_bmc(
9496
9597 if (convert_only)
9698 return property_checker_resultt::success ();
99+
100+ return result;
97101 }
98102 }
99103
@@ -115,8 +119,6 @@ property_checker_resultt word_level_bmc(
115119 {
116120 return property_checker_resultt::error ();
117121 }
118-
119- return property_checker_resultt{properties};
120122}
121123
122124property_checker_resultt finish_bit_level_bmc (
@@ -394,7 +396,7 @@ property_checker_resultt engine_heuristic(
394396 // Now try BMC with bound 5, word-level
395397 message.status () << " Attempting BMC with bound 5" << messaget::eom;
396398
397- bmc (
399+ auto bmc_result = bmc (
398400 5 , // bound
399401 false , // convert_only
400402 cmdline.isset (" bmc-with-assumptions" ),
@@ -403,6 +405,8 @@ property_checker_resultt engine_heuristic(
403405 solver_factory,
404406 message_handler);
405407
408+ properties.properties = std::move (bmc_result.properties );
409+
406410 if (!properties.has_unfinished_property ())
407411 return property_checker_resultt{properties}; // done
408412
0 commit comments