|
37 | 37 | #include <goto-checker/multi_path_symex_checker.h>
|
38 | 38 | #include <goto-checker/multi_path_symex_only_checker.h>
|
39 | 39 | #include <goto-checker/properties.h>
|
| 40 | +#include <goto-checker/single_path_symex_checker.h> |
40 | 41 | #include <goto-checker/single_path_symex_only_checker.h>
|
41 | 42 | #include <goto-checker/stop_on_fail_verifier.h>
|
42 | 43 |
|
@@ -571,32 +572,57 @@ int cbmc_parse_optionst::doit()
|
571 | 572 | if(
|
572 | 573 | options.get_bool_option("dimacs") || !options.get_option("outfile").empty())
|
573 | 574 | {
|
574 |
| - if(!options.get_bool_option("paths")) |
| 575 | + std::unique_ptr<goto_verifiert> verifier; |
| 576 | + if(options.get_bool_option("paths")) |
575 | 577 | {
|
576 |
| - stop_on_fail_verifiert<multi_path_symex_checkert> verifier( |
577 |
| - options, ui_message_handler, goto_model); |
578 |
| - (void)verifier(); |
579 |
| - return CPROVER_EXIT_SUCCESS; |
| 578 | + verifier = |
| 579 | + util_make_unique<stop_on_fail_verifiert<single_path_symex_checkert>>( |
| 580 | + options, ui_message_handler, goto_model); |
| 581 | + } |
| 582 | + else |
| 583 | + { |
| 584 | + verifier = |
| 585 | + util_make_unique<stop_on_fail_verifiert<multi_path_symex_checkert>>( |
| 586 | + options, ui_message_handler, goto_model); |
580 | 587 | }
|
| 588 | + |
| 589 | + (void)(*verifier)(); |
| 590 | + return CPROVER_EXIT_SUCCESS; |
581 | 591 | }
|
582 | 592 |
|
583 | 593 | std::unique_ptr<goto_verifiert> verifier = nullptr;
|
584 | 594 |
|
585 | 595 | if(
|
586 |
| - !options.get_bool_option("paths") && !options.is_set("cover") && |
587 |
| - !options.get_bool_option("dimacs") && options.get_option("outfile").empty()) |
| 596 | + !options.is_set("cover") && !options.get_bool_option("dimacs") && |
| 597 | + options.get_option("outfile").empty()) |
588 | 598 | {
|
589 | 599 | if(options.get_bool_option("stop-on-fail"))
|
590 | 600 | {
|
591 |
| - verifier = |
592 |
| - util_make_unique<stop_on_fail_verifiert<multi_path_symex_checkert>>( |
593 |
| - options, ui_message_handler, goto_model); |
| 601 | + if(options.get_bool_option("paths")) |
| 602 | + { |
| 603 | + verifier = |
| 604 | + util_make_unique<stop_on_fail_verifiert<single_path_symex_checkert>>( |
| 605 | + options, ui_message_handler, goto_model); |
| 606 | + } |
| 607 | + else |
| 608 | + { |
| 609 | + verifier = |
| 610 | + util_make_unique<stop_on_fail_verifiert<multi_path_symex_checkert>>( |
| 611 | + options, ui_message_handler, goto_model); |
| 612 | + } |
594 | 613 | }
|
595 | 614 | else
|
596 | 615 | {
|
597 |
| - verifier = util_make_unique< |
598 |
| - all_properties_verifier_with_trace_storaget<multi_path_symex_checkert>>( |
599 |
| - options, ui_message_handler, goto_model); |
| 616 | + if(options.get_bool_option("paths")) |
| 617 | + { |
| 618 | + verifier = util_make_unique<all_properties_verifier_with_trace_storaget< |
| 619 | + single_path_symex_checkert>>(options, ui_message_handler, goto_model); |
| 620 | + } |
| 621 | + else |
| 622 | + { |
| 623 | + verifier = util_make_unique<all_properties_verifier_with_trace_storaget< |
| 624 | + multi_path_symex_checkert>>(options, ui_message_handler, goto_model); |
| 625 | + } |
600 | 626 | }
|
601 | 627 | }
|
602 | 628 |
|
|
0 commit comments