AffectsBip* Trace
Closed this issue · 2 comments
stmt s;
Select s such that AffectsBip*(s, 23)
Actual Result: 6, 24, 25, 28, 29, 30
Expected Result: 24, 25, 28, 29, 30, 35, 36
6 doesn't affect bcoz in call 21, line 28 a is overwritten.
35 affects becoz in line 35, a is modified, in call 9, line 15, a affects line 23 directly
36 affects bcoz in line 36, c is modified, in call 9, line 15, c affects line 25, and is not changed along the way.
6 is alright:
AffectsBip(6 (m a), (c@7, c@21, 27) (u a)) ->
AffectsBip((c@7, c@21, 27) (m d), (c@7, c@21, 30) (u d)) ->
AffectsBip((c@7, c@21, 30) (m c), (c@7, c@21, c@31/32, 35) (u c)) ->
AffectsBip((c@7, c@21, c@31/32, 35) (m a), (c@9, c@15, 23) (u a))
but 35 and 36 should be there as well (can see why from the same path)
EDIT: 27 should be there also given the path!
Seems to be fixed in latest main