The restrict qualifier, when coupled with a typedef pointer causes an error in compilation. The following code
typedef void *foo_t;
void bar(foo_t restrict);
when compiled with "pcc -c test.c", fails:
test.c, line 2: invalid use of 'restrict'
/usr/libexec/ccom terminated with status 1
NB if we use "foo_t * restrict" as the type, or "void *" directly then it is accepted.