Skip to content

Commit 394c42d

Browse files
committed
Fix iterator comparison bug in reaching_definitions.cpp
1 parent f8e38fb commit 394c42d

File tree

2 files changed

+7
-8
lines changed

2 files changed

+7
-8
lines changed

src/analyses/reaching_definitions.cpp

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ void rd_range_domaint::transform(
6060
locationt to,
6161
ai_baset &ai,
6262
const namespacet &ns,
63-
ai_domain_baset::edge_typet /*edge_type*/)
63+
ai_domain_baset::edge_typet edge_type)
6464
{
6565
reaching_definitions_analysist *rd=
6666
dynamic_cast<reaching_definitions_analysist*>(&ai);
@@ -79,7 +79,7 @@ void rd_range_domaint::transform(
7979
transform_start_thread(ns, *rd);
8080
// do argument-to-parameter assignments
8181
else if(from->is_function_call())
82-
transform_function_call(ns, from, to, *rd);
82+
transform_function_call(ns, from, to, *rd, edge_type);
8383
// cleanup parameters
8484
else if(from->is_end_function())
8585
transform_end_function(ns, from, to, *rd);
@@ -170,15 +170,13 @@ void rd_range_domaint::transform_function_call(
170170
const namespacet &ns,
171171
locationt from,
172172
locationt to,
173-
reaching_definitions_analysist &rd)
173+
reaching_definitions_analysist &rd,
174+
ai_domain_baset::edge_typet edge_type)
174175
{
175176
const code_function_callt &code=to_code_function_call(from->code);
176177

177-
goto_programt::const_targett next=from;
178-
++next;
179-
180178
// only if there is an actual call, i.e., we have a body
181-
if(next!=to)
179+
if(edge_type != ai_domain_baset::edge_typet::FUNCTION_LOCAL)
182180
{
183181
for(valuest::iterator it=values.begin();
184182
it!=values.end();

src/analyses/reaching_definitions.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,8 @@ class rd_range_domaint:public ai_domain_baset
218218
const namespacet &ns,
219219
locationt from,
220220
locationt to,
221-
reaching_definitions_analysist &rd);
221+
reaching_definitions_analysist &rd,
222+
ai_domain_baset::edge_typet edge_type);
222223
void transform_end_function(
223224
const namespacet &ns,
224225
locationt from,

0 commit comments

Comments
 (0)