|
19 | 19 | #include <util/config.h>
|
20 | 20 | #include <util/exit_codes.h>
|
21 | 21 | #include <util/invariant.h>
|
| 22 | +#include <util/make_unique.h> |
22 | 23 | #include <util/unicode.h>
|
23 | 24 | #include <util/xml.h>
|
24 | 25 | #include <util/version.h>
|
|
30 | 31 | #include <goto-checker/all_properties_verifier.h>
|
31 | 32 | #include <goto-checker/multi_path_symex_checker.h>
|
32 | 33 | #include <goto-checker/multi_path_symex_only_checker.h>
|
| 34 | +#include <goto-checker/stop_on_fail_verifier.h> |
33 | 35 |
|
34 | 36 | #include <goto-programs/adjust_float_expressions.h>
|
35 | 37 | #include <goto-programs/lazy_goto_model.h>
|
@@ -571,17 +573,27 @@ int jbmc_parse_optionst::doit()
|
571 | 573 | return result_to_exit_code(result);
|
572 | 574 | }
|
573 | 575 | }
|
574 |
| - else |
| 576 | + |
| 577 | + if(!options.get_bool_option("paths")) |
575 | 578 | {
|
576 |
| - // we do all properties |
577 |
| - if(!options.get_bool_option("paths")) |
| 579 | + std::unique_ptr<goto_verifiert> verifier; |
| 580 | + |
| 581 | + if(options.get_bool_option("stop-on-fail")) |
578 | 582 | {
|
579 |
| - all_properties_verifiert<multi_path_symex_checkert> verifier( |
580 |
| - options, ui_message_handler, goto_model); |
581 |
| - resultt result = verifier(); |
582 |
| - verifier.report(); |
583 |
| - return result_to_exit_code(result); |
| 583 | + verifier = |
| 584 | + util_make_unique<stop_on_fail_verifiert<multi_path_symex_checkert>>( |
| 585 | + options, ui_message_handler, goto_model); |
584 | 586 | }
|
| 587 | + else |
| 588 | + { |
| 589 | + verifier = |
| 590 | + util_make_unique<all_properties_verifiert<multi_path_symex_checkert>>( |
| 591 | + options, ui_message_handler, goto_model); |
| 592 | + } |
| 593 | + |
| 594 | + resultt result = (*verifier)(); |
| 595 | + verifier->report(); |
| 596 | + return result_to_exit_code(result); |
585 | 597 | }
|
586 | 598 |
|
587 | 599 | // The `configure_bmc` callback passed will enable enum-unwind-static if
|
|
0 commit comments