|
28 | 28 | #include <ansi-c/ansi_c_language.h>
|
29 | 29 |
|
30 | 30 | #include <goto-checker/all_properties_verifier.h>
|
| 31 | +#include <goto-checker/all_properties_verifier_with_trace_storage.h> |
31 | 32 |
|
32 | 33 | #include <goto-programs/adjust_float_expressions.h>
|
33 | 34 | #include <goto-programs/lazy_goto_model.h>
|
|
62 | 63 | #include <java_bytecode/convert_java_nondet.h>
|
63 | 64 | #include <java_bytecode/java_bytecode_language.h>
|
64 | 65 | #include <java_bytecode/java_enum_static_init_unwind_handler.h>
|
| 66 | +#include <java_bytecode/java_multi_path_symex_checker.h> |
65 | 67 | #include <java_bytecode/java_multi_path_symex_only_checker.h>
|
66 | 68 | #include <java_bytecode/remove_exceptions.h>
|
67 | 69 | #include <java_bytecode/remove_instanceof.h>
|
@@ -579,13 +581,30 @@ int jbmc_parse_optionst::doit()
|
579 | 581 | }
|
580 | 582 | }
|
581 | 583 |
|
582 |
| - // The `configure_bmc` callback passed will enable enum-unwind-static if |
583 |
| - // applicable. |
584 |
| - return bmct::do_language_agnostic_bmc( |
585 |
| - options, |
586 |
| - goto_model, |
587 |
| - ui_message_handler, |
588 |
| - configure_bmc); |
| 584 | + std::unique_ptr<goto_verifiert> verifier = nullptr; |
| 585 | + |
| 586 | + if(!options.get_bool_option("paths") && !options.is_set("cover")) |
| 587 | + { |
| 588 | + if(!options.get_bool_option("stop-on-fail")) |
| 589 | + { |
| 590 | + verifier = util_make_unique<all_properties_verifier_with_trace_storaget< |
| 591 | + java_multi_path_symex_checkert>>( |
| 592 | + options, ui_message_handler, goto_model); |
| 593 | + } |
| 594 | + } |
| 595 | + |
| 596 | + // fall back until everything has been ported to goto-checker |
| 597 | + if(verifier == nullptr) |
| 598 | + { |
| 599 | + // The `configure_bmc` callback passed will enable enum-unwind-static if |
| 600 | + // applicable. |
| 601 | + return bmct::do_language_agnostic_bmc( |
| 602 | + options, goto_model, ui_message_handler, configure_bmc); |
| 603 | + } |
| 604 | + |
| 605 | + resultt result = (*verifier)(); |
| 606 | + verifier->report(); |
| 607 | + return result_to_exit_code(result); |
589 | 608 | }
|
590 | 609 | else
|
591 | 610 | {
|
|
0 commit comments