16
16
#include < iostream>
17
17
#include < memory>
18
18
19
+ #include < util/exit_codes.h>
19
20
#include < util/string2int.h>
20
21
#include < util/config.h>
21
22
#include < util/unicode.h>
63
64
jbmc_parse_optionst::jbmc_parse_optionst (int argc, const char **argv):
64
65
parse_options_baset(JBMC_OPTIONS, argc, argv),
65
66
messaget(ui_message_handler),
66
- ui_message_handler(cmdline, " JBMC " CBMC_VERSION)
67
+ ui_message_handler(cmdline, " JBMC " CBMC_VERSION),
68
+ path_strategy_chooser()
67
69
{
68
70
}
69
71
@@ -73,7 +75,8 @@ ::jbmc_parse_optionst::jbmc_parse_optionst(
73
75
const std::string &extra_options):
74
76
parse_options_baset(JBMC_OPTIONS+extra_options, argc, argv),
75
77
messaget(ui_message_handler),
76
- ui_message_handler(cmdline, " JBMC " CBMC_VERSION)
78
+ ui_message_handler(cmdline, " JBMC " CBMC_VERSION),
79
+ path_strategy_chooser()
77
80
{
78
81
}
79
82
@@ -100,6 +103,14 @@ void jbmc_parse_optionst::get_command_line_options(optionst &options)
100
103
exit (1 ); // should contemplate EX_USAGE from sysexits.h
101
104
}
102
105
106
+ if (cmdline.isset (" show-symex-strategies" ))
107
+ {
108
+ std::cout << path_strategy_chooser.show_strategies ();
109
+ exit (CPROVER_EXIT_SUCCESS);
110
+ }
111
+
112
+ path_strategy_chooser.set_path_strategy_options (cmdline, options, *this );
113
+
103
114
if (cmdline.isset (" program-only" ))
104
115
options.set_option (" program-only" , true );
105
116
@@ -533,7 +544,12 @@ int jbmc_parse_optionst::doit()
533
544
// The `configure_bmc` callback passed will enable enum-unwind-static if
534
545
// applicable.
535
546
return bmct::do_language_agnostic_bmc (
536
- options, goto_model, ui_message_handler.get_ui (), *this , configure_bmc);
547
+ path_strategy_chooser,
548
+ options,
549
+ goto_model,
550
+ ui_message_handler.get_ui (),
551
+ *this ,
552
+ configure_bmc);
537
553
}
538
554
else
539
555
{
@@ -573,6 +589,7 @@ int jbmc_parse_optionst::doit()
573
589
// applicable.
574
590
return
575
591
bmct::do_language_agnostic_bmc (
592
+ path_strategy_chooser,
576
593
options,
577
594
lazy_goto_model,
578
595
ui_message_handler.get_ui (),
0 commit comments