В gcc некоторые предупреждения требуют включения оптимизации. Например:
int foo() {
int x;
return x;
}
Чтобы обнаружить неинициализированную переменную, необходимо передать -O.
$ gcc -W -Wall -c test.c
$ gcc -W -Wall -c test.c -O
test.c: In function ‘foo’:
test.c:3: warning: ‘x’ is used uninitialized in this function
Однако это может помешать отладке. Есть ли способ включить только фазы анализа, необходимые для предупреждений (и не только это конкретное предупреждение, но как можно больше), не оказывая слишком большого влияния на сгенерированный код?
Я использую gcc версии 4.3.3 (Ubuntu 4.3.3-5ubuntu4) на x86-64.