joern
joern copied to clipboard
(C/C++) Lost REACHING_DEF edge in statement 'a = a + 1' or 'a = a + i'
Here is the test code:
int f()
{
int a = 10;
a = a + 1;
for (int i = 1; i <= 10; i++)
a = a + i;
return a;
}
There should be a REACHING_DEF edge from a + 1
('CALL' node) to a = a + 1
('CALL' node) and a REACHING_DEF edge from a + i
('CALL' node) to a = a + i
('CALL' node)
However, here is the ddg of f
:
The above-mentioned REACHING_DEF edges are LOST!
The
a + 1
('CALL' node) and a + i
('CALL' node) have no out edge at all!
There is currently a major dataflow engine rewrite in the works that most likely will change a lot here. We will keep you posted on that. Hence, this issue here is on hold.
The major rewrite is merged. Please test again.
Tried on version 1.1.891, still not fixed.
@NemoTR can you test again?
Closing because it seems outdated