Skip to content

Commit 01c8c31

Browse files
authored
Merge pull request diffblue#113 from diffblue/mariusmc92/bugfix/ignore-nondet-in-lvsa
Added NONDET handling in taint domain's init
2 parents c48bc7d + c3a42da commit 01c8c31

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

src/taint-analysis/taint_summary.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -582,13 +582,33 @@ void taint_algorithm_computing_summary_of_functiont::initialise_domain(
582582
lvsa,
583583
it,
584584
*numbering);
585+
if(asgn.rhs().id()==ID_side_effect)
586+
{
587+
const side_effect_exprt see=to_side_effect_expr(asgn.rhs());
588+
if(see.get_statement()==ID_nondet)
589+
{
590+
const auto replace_it=
591+
program->get_NONDET_retvals_replacements().find(it);
592+
assert(replace_it!=program->get_NONDET_retvals_replacements().cend());
593+
collect_lvsa_access_paths(
594+
replace_it->second,
595+
program->get_namespace(),
596+
environment,
597+
lvsa,
598+
it,
599+
*numbering);
600+
}
601+
}
602+
else
603+
{
585604
collect_lvsa_access_paths(
586605
asgn.rhs(),
587606
program->get_namespace(),
588607
environment,
589608
lvsa,
590609
it,
591610
*numbering);
611+
}
592612
}
593613
else if(it->type == ASSERT)
594614
{

0 commit comments

Comments
 (0)