Is this program legal C? If so, please support your claim (either way) with references to one of the language standards.
void f(char *p) {
char *q = p - 1;
(void)( q < p );
};
int main(void) {
char arr[] = "Hello";
f( arr );
}
In particular, I'm interested in whether the q < p
comparison is legal or not.