This program
#include <ctype.h> int main () { char *s; isspace (s); } compiles with no warning in gcc 8.3.0, even though there's a type mistake; the correct call would be isspace (*s). The ctype functions are implemented as macros in glibc, so you can't have type checking. But they are also provided as builtins by gcc, so I wonder why type checking is not performed in that case, either. Thanks, Andrea Monaco