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.