@@ -67,6 +67,8 @@ Author: Daniel Kroening, kroening@kroening.com
67
67
#include < java_bytecode/java_enum_static_init_unwind_handler.h>
68
68
#include < java_bytecode/java_multi_path_symex_checker.h>
69
69
#include < java_bytecode/java_multi_path_symex_only_checker.h>
70
+ #include < java_bytecode/java_single_path_symex_checker.h>
71
+ #include < java_bytecode/java_single_path_symex_only_checker.h>
70
72
#include < java_bytecode/remove_exceptions.h>
71
73
#include < java_bytecode/remove_instanceof.h>
72
74
#include < java_bytecode/remove_java_new.h>
@@ -574,46 +576,83 @@ int jbmc_parse_optionst::doit()
574
576
options.get_bool_option (" program-only" ) ||
575
577
options.get_bool_option (" show-vcc" ))
576
578
{
577
- if (!options.get_bool_option (" paths" ))
579
+ std::unique_ptr<goto_verifiert> verifier;
580
+ if (options.get_bool_option (" paths" ))
578
581
{
579
- all_properties_verifiert<java_multi_path_symex_only_checkert> verifier (
582
+ verifier = util_make_unique<
583
+ all_properties_verifiert<java_single_path_symex_only_checkert>>(
584
+ options, ui_message_handler, goto_model);
585
+ }
586
+ else
587
+ {
588
+ verifier = util_make_unique<
589
+ all_properties_verifiert<java_multi_path_symex_only_checkert>>(
580
590
options, ui_message_handler, goto_model);
581
- (void )verifier ();
582
- return CPROVER_EXIT_SUCCESS;
583
591
}
592
+
593
+ (void )(*verifier)();
594
+ return CPROVER_EXIT_SUCCESS;
584
595
}
585
596
586
597
if (
587
598
options.get_bool_option (" dimacs" ) ||
588
599
!options.get_option (" outfile" ).empty ())
589
600
{
590
- if (!options.get_bool_option (" paths" ))
601
+ std::unique_ptr<goto_verifiert> verifier;
602
+ if (options.get_bool_option (" paths" ))
591
603
{
592
- stop_on_fail_verifiert<multi_path_symex_checkert> verifier (
604
+ verifier = util_make_unique<
605
+ stop_on_fail_verifiert<java_single_path_symex_checkert>>(
593
606
options, ui_message_handler, goto_model);
594
- (void )verifier ();
595
- return CPROVER_EXIT_SUCCESS;
596
607
}
608
+ else
609
+ {
610
+ verifier = util_make_unique<
611
+ stop_on_fail_verifiert<java_multi_path_symex_checkert>>(
612
+ options, ui_message_handler, goto_model);
613
+ }
614
+
615
+ (void )(*verifier)();
616
+ return CPROVER_EXIT_SUCCESS;
597
617
}
598
618
599
619
std::unique_ptr<goto_verifiert> verifier = nullptr ;
600
620
601
621
if (
602
- !options.get_bool_option (" paths" ) && !options.is_set (" cover" ) &&
603
- !options.get_bool_option (" dimacs" ) &&
622
+ !options.is_set (" cover" ) && !options.get_bool_option (" dimacs" ) &&
604
623
options.get_option (" outfile" ).empty ())
605
624
{
606
625
if (options.get_bool_option (" stop-on-fail" ))
607
626
{
608
- verifier = util_make_unique<
609
- stop_on_fail_verifiert<java_multi_path_symex_checkert>>(
610
- options, ui_message_handler, goto_model);
627
+ if (options.get_bool_option (" paths" ))
628
+ {
629
+ verifier = util_make_unique<
630
+ stop_on_fail_verifiert<java_single_path_symex_checkert>>(
631
+ options, ui_message_handler, goto_model);
632
+ }
633
+ else
634
+ {
635
+ verifier = util_make_unique<
636
+ stop_on_fail_verifiert<java_multi_path_symex_checkert>>(
637
+ options, ui_message_handler, goto_model);
638
+ }
611
639
}
612
640
else
613
641
{
614
- verifier = util_make_unique<all_properties_verifier_with_trace_storaget<
615
- java_multi_path_symex_checkert>>(
616
- options, ui_message_handler, goto_model);
642
+ if (options.get_bool_option (" paths" ))
643
+ {
644
+ verifier =
645
+ util_make_unique<all_properties_verifier_with_trace_storaget<
646
+ java_single_path_symex_checkert>>(
647
+ options, ui_message_handler, goto_model);
648
+ }
649
+ else
650
+ {
651
+ verifier =
652
+ util_make_unique<all_properties_verifier_with_trace_storaget<
653
+ java_multi_path_symex_checkert>>(
654
+ options, ui_message_handler, goto_model);
655
+ }
617
656
}
618
657
}
619
658
0 commit comments