https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89479
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2019-02-26
CC| |rguenth at gcc dot gnu.org
Ever confirmed|0 |1
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
I believe there's a dup somewhere. Basically function calls are not
annotated with {base,clique} (our implementation detail exposing __restrict
to the IL). To elaborate further to successfully mark a function call
with clique == 1 and base == 0 we have to prove the pointer marked restrict
doesn't escape the function through calls since I belive that for
int *p;
void g() { *p = 1; }
void f(int *q) { p = q; }
int foo(const int* x, void g())
{
f(x);
int result = *x;
g();
result += *x;
return result;
}
the access in g is still based on x since the above is equivalent to
int foo(const int* x, void g())
{
int *p = x;
int result = *x;
*p = 1;
result += *x;
return result;
}
letting aside eventual issues with the const qualification of *x.