https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120657
--- Comment #1 from Halalaluyafail3 <luigighiron at gmail dot com> --- The wrong token being pointed to also occurs when using restrict normally, for example: void(*restrict x)()=0; This generates the error message: <source>:2:5: error: invalid use of 'restrict' 2 | void(*restrict x)()=0; | ^~~~ <source>:2:5: error: invalid use of 'restrict' However, the incorrect use of restrict is more clear since it has to be spelled in the declaration.