Ah, as we talk about compiler options, another think I like to add is -Werror-implicit-function-declaration (that, as its name suggests, take an implicit function declaration as an error), since such a situation is most likely a bug in the program; and passing invalid arguments to functions leads to strange bugs too anyway.
It's already enabled for -Wall, according to: http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options
Not exactly: I speak of the option that treats this as an error (and then aborts the compilation). As I already said, I think that such a warning is important enough to become an error.