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.