77
77
#include < java_bytecode/simple_method_stubbing.h>
78
78
79
79
jbmc_parse_optionst::jbmc_parse_optionst (int argc, const char **argv)
80
- : parse_options_baset(JBMC_OPTIONS, argc, argv, ui_message_handler),
81
- ui_message_handler(cmdline, std::string(" JBMC " ) + CBMC_VERSION)
80
+ : parse_options_baset(
81
+ JBMC_OPTIONS,
82
+ argc,
83
+ argv,
84
+ util_make_unique<ui_message_handlert>(
85
+ cmdline,
86
+ std::string (" JBMC " ) + CBMC_VERSION))
82
87
{
83
88
}
84
89
@@ -90,8 +95,9 @@ ::jbmc_parse_optionst::jbmc_parse_optionst(
90
95
JBMC_OPTIONS + extra_options,
91
96
argc,
92
97
argv,
93
- ui_message_handler),
94
- ui_message_handler(cmdline, std::string(" JBMC " ) + CBMC_VERSION)
98
+ util_make_unique<ui_message_handlert>(
99
+ cmdline,
100
+ std::string (" JBMC " ) + CBMC_VERSION))
95
101
{
96
102
}
97
103
@@ -158,7 +164,7 @@ void jbmc_parse_optionst::get_command_line_options(optionst &options)
158
164
if (
159
165
cmdline.isset (" trace" ) || cmdline.isset (" compact-trace" ) ||
160
166
cmdline.isset (" stack-trace" ) || cmdline.isset (" stop-on-fail" ) ||
161
- (ui_message_handler. get_ui () != ui_message_handlert::uit::PLAIN &&
167
+ (message_handler-> get_ui () != ui_message_handlert::uit::PLAIN &&
162
168
!cmdline.isset (" cover" )))
163
169
{
164
170
options.set_option (" trace" , true );
@@ -442,7 +448,7 @@ int jbmc_parse_optionst::doit()
442
448
<< config.this_operating_system () << messaget::eom;
443
449
444
450
// output the options
445
- switch (ui_message_handler. get_ui ())
451
+ switch (message_handler-> get_ui ())
446
452
{
447
453
case ui_message_handlert::uit::PLAIN:
448
454
log.conditional_output (
@@ -566,7 +572,7 @@ int jbmc_parse_optionst::doit()
566
572
if (cmdline.isset (" show-properties" ))
567
573
{
568
574
show_properties (
569
- goto_model, log.get_message_handler (), ui_message_handler. get_ui ());
575
+ goto_model, log.get_message_handler (), message_handler-> get_ui ());
570
576
return 0 ; // should contemplate EX_OK from sysexits.h
571
577
}
572
578
@@ -580,13 +586,13 @@ int jbmc_parse_optionst::doit()
580
586
if (options.get_bool_option (" paths" ))
581
587
{
582
588
all_properties_verifiert<java_single_path_symex_only_checkert> verifier (
583
- options, ui_message_handler , goto_model);
589
+ options, *message_handler , goto_model);
584
590
(void )verifier ();
585
591
}
586
592
else
587
593
{
588
594
all_properties_verifiert<java_multi_path_symex_only_checkert> verifier (
589
- options, ui_message_handler , goto_model);
595
+ options, *message_handler , goto_model);
590
596
(void )verifier ();
591
597
}
592
598
@@ -600,13 +606,13 @@ int jbmc_parse_optionst::doit()
600
606
if (options.get_bool_option (" paths" ))
601
607
{
602
608
stop_on_fail_verifiert<java_single_path_symex_checkert> verifier (
603
- options, ui_message_handler , goto_model);
609
+ options, *message_handler , goto_model);
604
610
(void )verifier ();
605
611
}
606
612
else
607
613
{
608
614
stop_on_fail_verifiert<java_multi_path_symex_checkert> verifier (
609
- options, ui_message_handler , goto_model);
615
+ options, *message_handler , goto_model);
610
616
(void )verifier ();
611
617
}
612
618
@@ -621,7 +627,7 @@ int jbmc_parse_optionst::doit()
621
627
{
622
628
verifier = util_make_unique<
623
629
stop_on_fail_verifiert<java_single_path_symex_checkert>>(
624
- options, ui_message_handler , goto_model);
630
+ options, *message_handler , goto_model);
625
631
}
626
632
else if (
627
633
options.get_bool_option (" stop-on-fail" ) &&
@@ -632,13 +638,13 @@ int jbmc_parse_optionst::doit()
632
638
verifier =
633
639
util_make_unique<stop_on_fail_verifier_with_fault_localizationt<
634
640
java_multi_path_symex_checkert>>(
635
- options, ui_message_handler , goto_model);
641
+ options, *message_handler , goto_model);
636
642
}
637
643
else
638
644
{
639
645
verifier = util_make_unique<
640
646
stop_on_fail_verifiert<java_multi_path_symex_checkert>>(
641
- options, ui_message_handler , goto_model);
647
+ options, *message_handler , goto_model);
642
648
}
643
649
}
644
650
else if (
@@ -647,7 +653,7 @@ int jbmc_parse_optionst::doit()
647
653
{
648
654
verifier = util_make_unique<all_properties_verifier_with_trace_storaget<
649
655
java_single_path_symex_checkert>>(
650
- options, ui_message_handler , goto_model);
656
+ options, *message_handler , goto_model);
651
657
}
652
658
else if (
653
659
!options.get_bool_option (" stop-on-fail" ) &&
@@ -658,13 +664,13 @@ int jbmc_parse_optionst::doit()
658
664
verifier =
659
665
util_make_unique<all_properties_verifier_with_fault_localizationt<
660
666
java_multi_path_symex_checkert>>(
661
- options, ui_message_handler , goto_model);
667
+ options, *message_handler , goto_model);
662
668
}
663
669
else
664
670
{
665
671
verifier = util_make_unique<all_properties_verifier_with_trace_storaget<
666
672
java_multi_path_symex_checkert>>(
667
- options, ui_message_handler , goto_model);
673
+ options, *message_handler , goto_model);
668
674
}
669
675
}
670
676
else
@@ -674,7 +680,7 @@ int jbmc_parse_optionst::doit()
674
680
// The `configure_bmc` callback passed will enable enum-unwind-static if
675
681
// applicable.
676
682
return bmct::do_language_agnostic_bmc (
677
- options, goto_model, ui_message_handler , configure_bmc);
683
+ options, goto_model, *message_handler , configure_bmc);
678
684
}
679
685
680
686
const resultt result = (*verifier)();
@@ -685,7 +691,7 @@ int jbmc_parse_optionst::doit()
685
691
{
686
692
// Use symex-driven lazy loading:
687
693
lazy_goto_modelt lazy_goto_model =
688
- lazy_goto_modelt::from_handler_object (*this , options, ui_message_handler );
694
+ lazy_goto_modelt::from_handler_object (*this , options, *message_handler );
689
695
lazy_goto_model.initialize (cmdline.args , options);
690
696
691
697
class_hierarchy =
@@ -722,7 +728,7 @@ int jbmc_parse_optionst::doit()
722
728
return bmct::do_language_agnostic_bmc (
723
729
options,
724
730
lazy_goto_model,
725
- ui_message_handler ,
731
+ *message_handler ,
726
732
configure_bmc,
727
733
callback_after_symex);
728
734
}
@@ -742,7 +748,7 @@ int jbmc_parse_optionst::get_goto_program(
742
748
{
743
749
{
744
750
lazy_goto_modelt lazy_goto_model =
745
- lazy_goto_modelt::from_handler_object (*this , options, ui_message_handler );
751
+ lazy_goto_modelt::from_handler_object (*this , options, *message_handler );
746
752
lazy_goto_model.initialize (cmdline.args , options);
747
753
748
754
class_hierarchy =
@@ -751,7 +757,7 @@ int jbmc_parse_optionst::get_goto_program(
751
757
// Show the class hierarchy
752
758
if (cmdline.isset (" show-class-hierarchy" ))
753
759
{
754
- show_class_hierarchy (*class_hierarchy, ui_message_handler );
760
+ show_class_hierarchy (*class_hierarchy, *message_handler );
755
761
return CPROVER_EXIT_SUCCESS;
756
762
}
757
763
@@ -766,12 +772,12 @@ int jbmc_parse_optionst::get_goto_program(
766
772
// values, etc
767
773
if (cmdline.isset (" show-symbol-table" ))
768
774
{
769
- show_symbol_table (lazy_goto_model.symbol_table , ui_message_handler );
775
+ show_symbol_table (lazy_goto_model.symbol_table , *message_handler );
770
776
return 0 ;
771
777
}
772
778
else if (cmdline.isset (" list-symbols" ))
773
779
{
774
- show_symbol_table_brief (lazy_goto_model.symbol_table , ui_message_handler );
780
+ show_symbol_table_brief (lazy_goto_model.symbol_table , *message_handler );
775
781
return 0 ;
776
782
}
777
783
@@ -790,7 +796,7 @@ int jbmc_parse_optionst::get_goto_program(
790
796
// show it?
791
797
if (cmdline.isset (" show-loops" ))
792
798
{
793
- show_loop_ids (ui_message_handler. get_ui (), *goto_model);
799
+ show_loop_ids (message_handler-> get_ui (), *goto_model);
794
800
return 0 ;
795
801
}
796
802
@@ -802,7 +808,7 @@ int jbmc_parse_optionst::get_goto_program(
802
808
show_goto_functions (
803
809
*goto_model,
804
810
log.get_message_handler (),
805
- ui_message_handler. get_ui (),
811
+ message_handler-> get_ui (),
806
812
cmdline.isset (" list-goto-functions" ));
807
813
return 0 ;
808
814
}
@@ -846,8 +852,7 @@ void jbmc_parse_optionst::process_goto_function(
846
852
replace_java_nondet (function);
847
853
848
854
// Similar removal of java nondet statements:
849
- convert_nondet (
850
- function, ui_message_handler, object_factory_params, ID_java);
855
+ convert_nondet (function, *message_handler, object_factory_params, ID_java);
851
856
852
857
if (using_symex_driven_loading)
853
858
{
@@ -861,7 +866,7 @@ void jbmc_parse_optionst::process_goto_function(
861
866
goto_function.body ,
862
867
symbol_table,
863
868
*class_hierarchy.get (),
864
- ui_message_handler );
869
+ *message_handler );
865
870
}
866
871
867
872
// add generic checks
@@ -873,7 +878,7 @@ void jbmc_parse_optionst::process_goto_function(
873
878
function.get_function_id (),
874
879
goto_function,
875
880
symbol_table,
876
- ui_message_handler );
881
+ *message_handler );
877
882
878
883
// checks don't know about adjusted float expressions
879
884
adjust_float_expressions (goto_function, ns);
@@ -910,18 +915,18 @@ bool jbmc_parse_optionst::show_loaded_functions(
910
915
{
911
916
if (cmdline.isset (" show-symbol-table" ))
912
917
{
913
- show_symbol_table (goto_model.get_symbol_table (), ui_message_handler );
918
+ show_symbol_table (goto_model.get_symbol_table (), *message_handler );
914
919
return true ;
915
920
}
916
921
else if (cmdline.isset (" list-symbols" ))
917
922
{
918
- show_symbol_table_brief (goto_model.get_symbol_table (), ui_message_handler );
923
+ show_symbol_table_brief (goto_model.get_symbol_table (), *message_handler );
919
924
return true ;
920
925
}
921
926
922
927
if (cmdline.isset (" show-loops" ))
923
928
{
924
- show_loop_ids (ui_message_handler. get_ui (), goto_model.get_goto_functions ());
929
+ show_loop_ids (message_handler-> get_ui (), goto_model.get_goto_functions ());
925
930
return true ;
926
931
}
927
932
@@ -932,8 +937,8 @@ bool jbmc_parse_optionst::show_loaded_functions(
932
937
namespacet ns (goto_model.get_symbol_table ());
933
938
show_goto_functions (
934
939
ns,
935
- ui_message_handler ,
936
- ui_message_handler. get_ui (),
940
+ *message_handler ,
941
+ message_handler-> get_ui (),
937
942
goto_model.get_goto_functions (),
938
943
cmdline.isset (" list-goto-functions" ));
939
944
return true ;
@@ -945,7 +950,7 @@ bool jbmc_parse_optionst::show_loaded_functions(
945
950
show_properties (
946
951
ns,
947
952
log.get_message_handler (),
948
- ui_message_handler. get_ui (),
953
+ message_handler-> get_ui (),
949
954
goto_model.get_goto_functions ());
950
955
return true ;
951
956
}
@@ -1079,9 +1084,9 @@ bool jbmc_parse_optionst::generate_function_body(
1079
1084
symbol_table,
1080
1085
stub_objects_are_not_null,
1081
1086
object_factory_params,
1082
- ui_message_handler );
1087
+ *message_handler );
1083
1088
1084
- goto_convert_functionst converter (symbol_table, ui_message_handler );
1089
+ goto_convert_functionst converter (symbol_table, *message_handler );
1085
1090
converter.convert_function (function_name, function);
1086
1091
1087
1092
return true ;
0 commit comments