dg
dg copied to clipboard
make slicing context sensitive precise
we have interprocedural edges that make strong updates impossible. For example in this code:
int a;
void foo(void)
{
a = 3;
}
int main(void)
{
a = 1;
foo();
foo();
test_assert(a == 3);
return 0;
}
we should keep only the last foo() call and remove the a = 1 and the other foo call, but we keep everything (with both old and new pta analysis)
yeah, but that needs better slicing algorithm (now we make all call-sites a dependence for the called function, so when we keep the function, we keep all callsites...)
Subissue of #242
See also #428 .