Are the types of these two declarations compatible types?
void f(char *, char *);
void f(char *restrict, char *restrict);
or similarly:
void g(char *);
void g(char *const);
I'm having a hard time finding anything in the standard which covers the issue. I'm mostly interested in the topic of whether it's valid to manually prototype a function, omitting the restrict keyword, where the actual type might have restrict-qualified arguments depending on the version of C or version of other libraries in use.