1616#include < iostream>
1717#include < memory>
1818
19+ #include < util/exit_codes.h>
1920#include < util/string2int.h>
2021#include < util/config.h>
2122#include < util/unicode.h>
6364jbmc_parse_optionst::jbmc_parse_optionst (int argc, const char **argv):
6465 parse_options_baset(JBMC_OPTIONS, argc, argv),
6566 messaget(ui_message_handler),
66- ui_message_handler(cmdline, " JBMC " CBMC_VERSION)
67+ ui_message_handler(cmdline, " JBMC " CBMC_VERSION),
68+ path_strategy_chooser()
6769{
6870}
6971
@@ -73,7 +75,8 @@ ::jbmc_parse_optionst::jbmc_parse_optionst(
7375 const std::string &extra_options):
7476 parse_options_baset(JBMC_OPTIONS+extra_options, argc, argv),
7577 messaget(ui_message_handler),
76- ui_message_handler(cmdline, " JBMC " CBMC_VERSION)
78+ ui_message_handler(cmdline, " JBMC " CBMC_VERSION),
79+ path_strategy_chooser()
7780{
7881}
7982
@@ -100,6 +103,14 @@ void jbmc_parse_optionst::get_command_line_options(optionst &options)
100103 exit (1 ); // should contemplate EX_USAGE from sysexits.h
101104 }
102105
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+
103114 if (cmdline.isset (" program-only" ))
104115 options.set_option (" program-only" , true );
105116
@@ -533,7 +544,12 @@ int jbmc_parse_optionst::doit()
533544 // The `configure_bmc` callback passed will enable enum-unwind-static if
534545 // applicable.
535546 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);
537553 }
538554 else
539555 {
@@ -573,6 +589,7 @@ int jbmc_parse_optionst::doit()
573589 // applicable.
574590 return
575591 bmct::do_language_agnostic_bmc (
592+ path_strategy_chooser,
576593 options,
577594 lazy_goto_model,
578595 ui_message_handler.get_ui (),
0 commit comments