@@ -512,29 +512,8 @@ void sec_driver_parse_optionst::process_goto_function(
512
512
513
513
replace_java_nondet (function);
514
514
515
- #if 0 // Enable this when remove handling of NONDET in taint_analysis
516
- // Similar removal of java nondet statements:
517
- // TODO Should really get this from java_bytecode_language somehow, but we
518
- // don't have an instance of that here.
519
- object_factory_parameterst factory_params;
520
- factory_params.max_nondet_array_length=
521
- cmdline.isset("java-max-input-array-length")
522
- ? std::stoul(cmdline.get_value("java-max-input-array-length"))
523
- : MAX_NONDET_ARRAY_LENGTH_DEFAULT;
524
- factory_params.max_nondet_string_length=
525
- cmdline.isset("string-max-input-length")
526
- ? std::stoul(cmdline.get_value("string-max-input-length"))
527
- : MAX_NONDET_STRING_LENGTH;
528
- factory_params.max_nondet_tree_depth=
529
- cmdline.isset("java-max-input-tree-depth")
530
- ? std::stoul(cmdline.get_value("java-max-input-tree-depth"))
531
- : MAX_NONDET_TREE_DEPTH;
532
-
533
515
convert_nondet (
534
- function,
535
- get_message_handler(),
536
- factory_params);
537
- #endif
516
+ function, get_message_handler (), object_factory_params, ID_java);
538
517
539
518
adjust_float_expressions (goto_function, namespacet (symbol_table));
540
519
@@ -657,12 +636,12 @@ bool sec_driver_parse_optionst::generate_function_body(
657
636
{
658
637
// Provide a simple stub implementation for any function we don't have a
659
638
// bytecode implementation for:
660
-
661
- if (body_available)
662
- return false ;
663
-
664
- if (! can_generate_function_body (function_name))
665
- return false ;
639
+ if (body_available || ! can_generate_function_body (function_name))
640
+ {
641
+ const symbolt *symbol = symbol_table. lookup (function_name) ;
642
+ if (symbol == nullptr || !symbol-> type . get_bool (ID_C_abstract))
643
+ return false ;
644
+ }
666
645
667
646
if (symbol_table.lookup_ref (function_name).mode == ID_java)
668
647
{
0 commit comments