I'm enough of an old-timer to *prefer* the "brain-dead" compiler and lint
combination over ANSI compilers. It's easier to shoot yourself in the foot that
way, but that's part of the fun of programming in C. Give me a K&R compiler and
a copy of lint any day.
Of course, gcc (and other compilers) provide switches to turn off a lot of the
warning messages. But I prefer lint because it only gives me what I ask for; I
don't have to ask it NOT to do things.
Lint was originally an AT&T supplied tool that scanned C source code looking
for possible problems. This was/is a vital tool, because original (and many
other) C compilers were brain-dead, and did a lousy jon of checking for such
problems. (gcc is much better, having many lint-like checks built in.)