@@ -512,30 +512,11 @@ void sec_driver_parse_optionst::process_goto_function(
512
512
513
513
replace_java_nondet (function);
514
514
515
- #if 1 // 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
516
function,
535
517
get_message_handler (),
536
- factory_params ,
518
+ object_factory_params ,
537
519
ID_java);
538
- #endif
539
520
540
521
adjust_float_expressions (goto_function, namespacet (symbol_table));
541
522
@@ -658,12 +639,12 @@ bool sec_driver_parse_optionst::generate_function_body(
658
639
{
659
640
// Provide a simple stub implementation for any function we don't have a
660
641
// bytecode implementation for:
661
-
662
- if (body_available)
663
- return false ;
664
-
665
- if (! can_generate_function_body (function_name))
666
- return false ;
642
+ if (body_available || ! can_generate_function_body (function_name))
643
+ {
644
+ const symbolt *symbol = symbol_table. lookup (function_name) ;
645
+ if (symbol == nullptr || !symbol-> type . get_bool (ID_C_abstract))
646
+ return false ;
647
+ }
667
648
668
649
if (symbol_table.lookup_ref (function_name).mode == ID_java)
669
650
{
0 commit comments