https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92963
--- Comment #2 from Alexander Cherepanov <ch3root at openwall dot com> --- > p cannot be q as they cannot be based on each other based on my reading of > 6.7.3.1p3. Perhaps something like that was intended at some point but I don't see it in the text. Until you start analyzing actual accesses you cannot draw any conclusions about values of p and q. Example 3 in the formal definition of restrict (C11, 6.7.3.1p10) specifically illustrates the case of two equal restricted pointers.