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

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Exactly like the following standard C23 code:
```
void nonrestirct();
void restirctcall();
void
foo (int* a, int* __restrict b, int n);
void
foo (int* a, int*  b, int n)
{
        typeof(b) c = b;
        _Generic (&c ,
          int * __restrict*: restirctcall(),
          int **: nonrestirct()
        ); // calls nonrestirct
}
void
foo1 (int* a, int*  b, int n);
void
foo1 (int* a, int* __restrict b, int n)
{
        typeof(b) c = b;
        _Generic (&c ,
          int * __restrict*: restirctcall(),
          int **: nonrestirct()
        ); // calls restirctcall
}

```

Reply via email to