@@ -514,22 +514,6 @@ int jbmc_parse_optionst::doit()
514
514
return 0 ;
515
515
}
516
516
517
- std::function<void (bmct &, const symbol_tablet &)> configure_bmc = nullptr ;
518
- if (options.get_bool_option (" java-unwind-enum-static" ))
519
- {
520
- configure_bmc =
521
- [](bmct &bmc, const symbol_tablet &symbol_table) {
522
- bmc.add_loop_unwind_handler ([&symbol_table](
523
- const call_stackt &context,
524
- unsigned loop_number,
525
- unsigned unwind,
526
- unsigned &max_unwind) {
527
- return java_enum_static_init_unwind_handler (
528
- context, loop_number, unwind, max_unwind, symbol_table);
529
- });
530
- };
531
- }
532
-
533
517
object_factory_params.set (options);
534
518
535
519
stub_objects_are_not_null =
@@ -557,11 +541,15 @@ int jbmc_parse_optionst::doit()
557
541
if (get_goto_program_ret != -1 )
558
542
return get_goto_program_ret;
559
543
560
- if (!options.get_bool_option (" symex-driven-lazy-loading" ))
561
544
{
562
545
if (
563
546
options.get_bool_option (" program-only" ) ||
564
- options.get_bool_option (" show-vcc" ))
547
+ options.get_bool_option (" show-vcc" ) ||
548
+ (options.get_bool_option (" symex-driven-lazy-loading" ) &&
549
+ (cmdline.isset (" show-symbol-table" ) || cmdline.isset (" list-symbols" ) ||
550
+ cmdline.isset (" show-goto-functions" ) ||
551
+ cmdline.isset (" list-goto-functions" ) ||
552
+ cmdline.isset (" show-properties" ) || cmdline.isset (" show-loops" ))))
565
553
{
566
554
if (options.get_bool_option (" paths" ))
567
555
{
@@ -576,6 +564,13 @@ int jbmc_parse_optionst::doit()
576
564
(void )verifier ();
577
565
}
578
566
567
+ if (options.get_bool_option (" symex-driven-lazy-loading" ))
568
+ {
569
+ // We can only output these after goto-symex has run.
570
+ (void )show_loaded_symbols (*goto_model_ptr);
571
+ (void )show_loaded_functions (*goto_model_ptr);
572
+ }
573
+
579
574
return CPROVER_EXIT_SUCCESS;
580
575
}
581
576
@@ -662,30 +657,6 @@ int jbmc_parse_optionst::doit()
662
657
verifier->report ();
663
658
return result_to_exit_code (result);
664
659
}
665
- else
666
- {
667
- lazy_goto_modelt &lazy_goto_model =
668
- dynamic_cast <lazy_goto_modelt &>(*goto_model_ptr);
669
-
670
- // Provide show-goto-functions and similar dump functions after symex
671
- // executes. If --paths is active, these dump routines run after every
672
- // paths iteration. Its return value indicates that if we ran any dump
673
- // function, then we should skip the actual solver phase.
674
- auto callback_after_symex = [this , &lazy_goto_model]() {
675
- if (show_loaded_symbols (lazy_goto_model))
676
- return true ;
677
- return show_loaded_functions (lazy_goto_model);
678
- };
679
-
680
- // The `configure_bmc` callback passed will enable enum-unwind-static if
681
- // applicable.
682
- return bmct::do_language_agnostic_bmc (
683
- options,
684
- lazy_goto_model,
685
- ui_message_handler,
686
- configure_bmc,
687
- callback_after_symex);
688
- }
689
660
}
690
661
691
662
int jbmc_parse_optionst::get_goto_program (
0 commit comments