Этот пост небольшое дополнение к
посту Белого Рыцаря, в котором речь идет об опциях, включающих те или иные
предупреждения компилятора
gcc.
Для того чтобы включить "
все предупреждения,
gcc нужно передать опции
-Wall и
-Wextra, однако, вопреки расхожему мнению, эти опции включают далеко не все
предупреждения, которые может выдавать
gcc.
А вот для того, чтобы посмотреть, какие
предупреждения будут выключены или включены, вследствие
использования той или иной опции, нужно выполнить команду (для
-Wall):
gcc -c -Q -Wall --help=warningsкоторая выдаст следующее:
Следующие ключи контролируют предупреждения компилятора: -Wabi [выключено] -Waddress [включено] -Waggregate-return [выключено] -Waliasing -Walign-commons -Wall -Wampersand
-Warray-bounds [включено]Список получится длинный и зависит от версии компилятора.
Эта же команда работает и для ключей оптимизации:
gcc -c -Q -O3 --help=optimizersНа выходе тоже получится длинный список включенных и отключенных возможностей оптимизации.
А если выполнить команду:
gcc -c -Wall --help=warningsТо можно посмотреть, что означает каждая из опций,
контролирующих предупреждения:
Следующие ключи контролируют предупреждения компилятора: -Wabi Предупреждать о различиях по сравнению с компиляцией при помощи компилятора, совместимого с ABI -Waddress Warn about suspicious uses of memory addresses -Waggregate-return Предупреждать о возвращении функциями структур, объединений, массивов -Waliasing Warn about possible aliasing of dummy arguments -Walign-commons Warn about alignment of COMMON blocks -Wall Включить все основные виды предупреждений.
Вот так.