Is there any usefulness to this particular situation of the -Wshadow warning? foo.c: void debug (void); void foo (char* debug); casey:~$ gcc-3.0.4 -c -Wshadow foo.c foo.c:2: warning: declaration of `debug' shadows global declaration casey:~$ Print the warning at the definition site of foo, yes! But at the prototype site?