https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104076
--- Comment #5 from Martin Sebor <msebor at gcc dot gnu.org> ---
Unlike the false positive -Wuse-after-free in pr104232, the instance of
-Wdangling-pointer in this case (a PHI argument) is intentional so that we
diagnose problems like those in the request for it (pr63272), or in this more
involved test case:
void warn_cond_if (int i, int n)
{
int *p;
if (i)
{
int a[] = { 1, 2 }; // { dg-message "'a' declared" "note" }
sink (a);
p = a;
}
else
p = (int*)malloc (n);
sink (p); // { dg-warning "dangling pointer 'p' to 'a' may
be used" }
}
I could add another level to -Wdangling-pointer to separately control uses in
equality expressions, for consistency with -Wuse-after-free.