@@ -431,17 +431,22 @@ bool taint_algorithm_computing_summary_of_functiont::
431
431
singular);
432
432
if (generate_fresh_evs && raw_result.empty ())
433
433
{
434
- external_value_set_exprt new_lhs (
435
- query_expr.type (),
436
- constant_exprt (" " , string_typet ()),
437
- external_value_set_typet::ROOT_OBJECT,
438
- false );
439
- // Use access path "[]" to dereference the pointer
440
- access_path_entry_exprt new_entry (" []" , " " , " " , typet ());
441
- new_lhs.set_per_field_access_path (new_entry);
442
- const auto new_number =
443
- numbering->number (static_cast <const exprt &>(new_lhs));
444
- result.insert (new_number);
434
+ if (query_expr.id () == ID_dynamic_object)
435
+ result.insert (numbering->number (query_expr));
436
+ else
437
+ {
438
+ external_value_set_exprt new_lhs (
439
+ query_expr.type (),
440
+ constant_exprt (" " , string_typet ()),
441
+ external_value_set_typet::ROOT_OBJECT,
442
+ false );
443
+ // Use access path "[]" to dereference the pointer
444
+ access_path_entry_exprt new_entry (" []" , " " , " " , typet ());
445
+ new_lhs.set_per_field_access_path (new_entry);
446
+ const auto new_number =
447
+ numbering->number (static_cast <const exprt &>(new_lhs));
448
+ result.insert (new_number);
449
+ }
445
450
return false ;
446
451
}
447
452
for (const auto raw_number : raw_result)
0 commit comments