https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96564
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed|2020-08-11 00:00:00 |2024-5-16
CC| |aldyh at gcc dot gnu.org
--- Comment #17 from Richard Biener <rguenth at gcc dot gnu.org> ---
Handling pointer-vs-pointer in ptrs_compare_unequal isn't enough since we have
# PT = nonlocal null
unsigned int * x_7(D) = x;
...
# PT = null { D.2785 }
a_9 = malloc (_2);
if (a_9 == 0B)
goto <bb 7>; [0.04%]
else
goto <bb 3>; [99.96%]
<bb 7> [local count: 429496]:
goto <bb 6>; [100.00%]
<bb 3> [local count: 1073312328]:
if (x_7(D) != a_9)
so querying points-to only has to consider both pointers being NULL. Now,
I'm not sure how prange handles the above and whether or how it integrates
knowledge from flow-insensitive points-to analysis.
Aldy might know.
I'm testing a patch enhancing ptrs_compare_unequal right now, also filling
in a missing bit in points-to info.