В GCC 4.x есть опция "-fdiagnostics-show-option", которая отображает опцию, используемую для отключения предупреждения:
$ gcc -fdiagnostics-show-option foo.c -Wall -o foo
foo.c: In function ‘main’:
foo.c:3: warning: unused variable ‘x’ [-Wunused-variable]
foo.c:4: warning: control reaches end of non-void function
Если вам нужно разобрать предупреждение, это может упростить ситуацию (особенно при наличии локализованных сообщений об ошибках).