Этот пост небольшое дополнение к посту Белого Рыцаря, в котором речь идет об опциях, включающих те или иные предупреждения компилятора 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 Включить все основные виды предупреждений.
Вот так.
Комментариев нет:
Отправить комментарий