SimpleProgramAnalyser/spa

AffectsBip* Trace

Closed this issue · 2 comments

image
image

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.

affectsBipSource_lineNumbered.txt

alcen commented

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!

alcen commented

Seems to be fixed in latest main