https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79588

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Indeed, consider e.g.
// PR c++/79588
// { dg-do compile }
// { dg-options "-Wrestrict" }

void foo (char *__restrict, char *__restrict = __null);

template <int N>
void
bar (char **p)
{
  foo (p[0], p[0]);     // { dg-warning "to restrict-qualified parameter
aliases with" }
  foo (p[0], p[N]);     // { dg-warning "to restrict-qualified parameter
aliases with" }
}

void
baz (char **p)
{
  bar<0> (p);
}

where there is no warning in the second foo invocation, because it is done too
early.

Reply via email to