| Опция | Описание |
| Опции печати помощи |
| --help | Печатать этот текст |
| --help-raw | Печатать этот текст в форматированном виде для автоматической обработки |
| Опции управления процессом компиляции |
| -c | Компилировать до объектного файла |
| -S | Компилировать до ассемблерного файла |
| -o<file> (-o <file>) | Сохранять результат работы в файле <file> |
| -v (--verbose) | Выводить строки запуска компонент и их verbose-выдачи |
| -vs | Выводить только строки запуска компонент |
| --tempdir <dir> | Установить директорию для временных файлов |
| -save-temps | Создавать временные файлы в текущей директории и не удалять их |
| -pthread (-pthread) | Подключить потоковые библиотеки и макросы |
| -ww | Подавлять все предупреждения, не относящиеся к исходному тексту программы |
| Опции режима компиляции целевой архитектуры |
| -mtune=<cpu> | Формировать код для процессора <cpu> |
| -march=<arch> | Формировать код для архитектуры <arch> |
| -mptr32 (-m32) | Компилировать в режиме 32 бит |
| -mptr64 (-m64) | Компилировать в режиме 64 бит |
| -mptr128 (-m128) | Компилировать в защищённом режиме |
| -mptr128-64 | Компилировать в защищённом режиме до объектного файла, который затем можно подать в линковку в режиме -mptr64 (экспериментальная поддержка) |
| -faligned-check | Включить глобальный аппаратный контроль за невыровненными обращениями в память |
| Опции управления языковыми настройками |
| -std=<standard> | Использовать стандарт C/C++/Fortran <standard> |
| -ansi | В режиме языка C эквивалентно -std=c89, в режиме языка C++ эквивалентно -std=c++98 |
| -gcc-version <version> | Настроить lcc/l++ на совместимость с gcc версии <version> в отношении входного языка |
| -fopenmp (-fno-openmp) | Поддерживать директивы OpenMP |
| -fopenmp-simd (-fno-openmp-simd) | Включить поддержку SIMD директив OpenMP. Другие директивы игнорируются |
| -fopenmp-collapse | Включить поддержку прагм omp collapse |
| -fopenmp-optimistic-collapse | Использовать 32-битную общую индуктивность при сворачивании циклов omp collapse |
| Опции управления языковыми настройками C/C++ |
| -fanachronisms | Разрешать устаревшие конструкции C++ |
| -fpermissive | Некоторые ошибки по части устаревших конструкций C++ трактовать, как предупреждения |
| -fexceptions (-fno-exceptions) | Включить (выключить) поддержку обработки исключительных ситуаций |
| -fhandle-exceptions (-fno-handle-exceptions) | Эквивалентно -fexceptions (-fno-exceptions) |
| -funwind-tables (-fno-unwind-tables) | В режиме -fexceptions включить (выключить) построение информации о раскрутке стека |
| -fasynchronous-unwind-tables (-fno-asynchronous-unwind-tables) | Эквивалентно -funwind-tables (-fno-unwind-tables) |
| -feh-personality=<name> | Изменить название personality-функции |
| -frtti (-fno-rtti) | Включить (выключить) поддержку Run-Time Type Information |
| -ffor-scope (-fno-for-scope) | Ограничивать (не ограничивать) видимость переменных, объявленных внутри блока инициализации for, самим циклом for |
| -foperator-names (-fno-operator-names) | В режиме C++ поддерживать (не поддерживать) ключевые слова and, and_eq, bitand, bitor, compl, not, not_eq, or, or_eq, xor, xor_eq |
| -ftemplate-depth=<num> (-ftemplate-depth-<num>) | Установить допустимую глубину вложенности шаблонов C++ |
| -ftemplate-backtrace-limit=<num> | Установить глубину выдачи стека инстанциирования шаблонов C++ в случае выдачи ошибки в исходнике. Значение 0 соответствует неограниченной выдаче |
| -fconstexpr-depth=<num> | Установить допустимую глубину рекурсии constexpr-выражений C++ |
| -fconstexpr-loop-limit=<num> | Игнорируется |
| -fconstexpr-ops-limit=<num> | Установить допустимую вычислительную сложность constexpr-выражений C++, измеряется в количестве операций вызовов и количестве итераций циклов |
| -fbuilding-runtime | Опция используется для компиляции библиотеки поддержки C++ времени исполнения |
| -fbuilding-libgcc | Опция используется для компиляции библиотеки поддержки libgcc |
| -funsigned-char (-fsigned-char) | Считать char беззнаковым или знаковым типом (по умолчанию знаковым) |
| -fgnu89-inline (-fno-gnu89-inline) | В режиме C99 и выше трактовать модификатор inline в терминах языка GNU C89 |
| -flax-vector-conversions | Разрешать неявное преобразование типов для векторных типов с одинаковымы размерами, но разными базовыми типами |
| -traditional (-traditional-cpp) | В режиме препроцессирования использовать старый стиль препроцессирования |
| -trigraphs | Разрешать использование триграфов |
| -fno-gnu-keywords | В режиме C++ с использованием gnu-расширений не рассматривать typeof как ключевое слово |
| -fsized-deallocation (-fno-sized-deallocation) | В режиме C++ включить (выключить) поддержку C++14 sized deallocation |
| -faligned-new (-fno-aligned-new) | В режиме C++ включить (выключить) поддержку C++17 over-aligned allocation |
| -fchar8_t (-fno-char8_t) | В режиме C++ включить (выключить) поддержку базового типа C++20 char8_t |
| -fextended-identifiers (-fno-extended-identifiers) | В режиме C/C++ включить (выключить) поддержку universal character names в идентификаторах |
| Опции управления языковыми настройками Фортрана |
| -fstack-arrays (-fno-stack-arrays) | Распределять автоматические массивы неизвестного размера в стеке (в куче) |
| -fno-strict-f77 | В режиме Фортрана 77 указать, что программа не соблюдает стандарт Фортран 77 |
| -funconstrained-commons (-fno-unconstrained-commons) | Указать компилятору, что при работе с массивами, расположенными в common-блоках, реальный размер может оказаться больше, чем указано в исходнике |
| -fall-intrinsics | Разрешить использование всех встроенных функций независимо от указанного стандарта |
| -fallow-argument-mismatch (-fno-allow-argument-mismatch) | Выдавать предупреждение, а не ошибку, если вызов внешней функции не соответствует определению данной функции |
| -fallow-invalid-boz | Выдавать предупреждение, а не ошибку, если boz литерал используется в нарушении правил стандарта языка Fortran |
| -fallow-leading-underscore | Разрешить использование подчерка в начале идентификатора |
| -fautomatic (-fno-automatic) | Не разрешать трактовать локальные переменные нерекурсивных процедур как SAVE |
| -fbackslash | Интерпретировать символ "\" как символ "escape" |
| -fblas-matmul-limit=<val> | Установить значение, при превышении или равенстве которого будут вызваны blas функции перемножения матриц. Актуально только вместе с опцией -fexternal-blas |
| -fcray-pointer | Разрешить использование Cray Pointers |
| -fd-lines-as-code | Игнорировать символ "D" в первой колонке |
| -fd-lines-as-comments | Интерпретировать символ "D" в первой колонке как знак комментария |
| -fdec (-fno-dec) | Разрешить синтаксис DEC, включает все опции, которые начинаются на -fdec |
| -fdec-blank-format-item (-fno-dec-blank-format-item) | Разрешить использовать пробел в конце строки спецификации формата |
| -fdec-char-conversions (-fno-dec-char-conversions) | Разрешить использование символьных литералов в целочисленных присваиваниях |
| -fdec-format-defaults (-fno-dec-format-defaults) | Разрешить не указывать ширину при использовании спецификаторов формата F, G, I |
| -fdec-intrinsic-ints (-fno-dec-intrinsic-ints) | Разрешить дополнительные встроенные функции с использованием разновидности целого |
| -fdec-math (-fno-dec-math) | Разрешить дополнительные встроенные математические функции |
| -fdec-static (-fno-dec-static) | Разрешить атрибуты AUTOMATIC и STATIC - то же самое, что атрибут SAVE |
| -fdec-structure (-fno-dec-structure) | Разрешить запись DEC структур и записей - то же самое, что и производный тип, но другой синтаксис |
| -fdefault-double-8 | Установить размер типа double precision в 8 по умолчанию |
| -fdefault-integer-8 | Установить размер типов integer и logical в 8 по умолчанию |
| -fdefault-real-8 | Установить размер типа real в 8 по умолчанию |
| -fdefault-real-10 | Установить размер типа real в 10 по умолчанию |
| -fdefault-real-16 | Установить размер типа real в 16 по умолчанию |
| -fdiagnostics-show-caret (-fno-diagnostics-show-caret) | Показывать позиции в строке исходного текста с помощью специального знака |
| -fdiagnostics-show-location=<val> | Показывать номер строки текста, если диагностическое сообщение содержит несколько строк. Допустимые значения <val>: once, every-line |
| -fdiagnostics-show-option (-fno-diagnostics-show-option) | Печатать в диагностическом сообщении опцию, в результате действия которой это сообщение появилось |
| -fdollar-ok | Разрешить символ "$" в идентификаторе в качестве не первого символа |
| -fexternal-blas | Генерировать вызовы blas функций вместо использования общих алгоритмов перемножения матриц. При использовании данной опции в строку линковки необходимо подать библиотеку, в которой реализованы интерфейсы blas |
| -ff2c (-fno-f2c) | Генерировать код в режиме совместимости с g77 и f2c |
| -ffixed-form | Установить форму исходного файла фиксированной, независимо от расширения |
| -ffixed-line-length-<val> | Установить размер строки в <val> для фиксированной формы файла |
| -ffixed-line-length-none | Разрешить произвольный размер строки для свободной формы файла |
| -ffree-form | Установить форму исходного файла свободной, независимо от расширения |
| -ffree-line-length-<val> | Установить позицию в строке, после которой символы игнорируются |
| -ffree-line-length-none | Разрешить произвольный размер строки для свободной формы файла |
| -fimplicit-none | Отменить умолчания типа для идентификаторов в зависимости от первой буквы |
| -finteger-4-integer-8 | Интерпретировать переменные, описанные с типом INTEGER(4) как INTEGER(8) |
| -fintrinsic-modules-path=<path> | Установить директорию для поиска встроенных модулей |
| -fmax-identifier-length=<val> | Установить максимально допустимый размер идентификатора |
| -fmodule-private | Установить доступ PRIVATE ко всем объектам модулей по умолчанию |
| -fprotect-parens (-fno-protect-parens) | Не разрешать изменять порядок вычислений в выражении (порядок определяется скобками) |
| -frange-check (-fno-range-check) | Выводить сообщения об ошибках в процессе константных вычислений при компиляции |
| -freal-4-real-8 | Интерпретировать переменные, описанные с типом REAL(4) как REAL(8) |
| -freal-4-real-10 | Интерпретировать переменные, описанные с типом REAL(4) как REAL(10) |
| -freal-4-real-16 | Интерпретировать переменные, описанные с типом REAL(4) как REAL(16) |
| -freal-8-real-4 | Интерпретировать переменные, описанные с типом REAL(8) как REAL(4) |
| -freal-8-real-10 | Интерпретировать переменные, описанные с типом REAL(8) как REAL(10) |
| -freal-8-real-16 | Интерпретировать переменные, описанные с типом REAL(8) как REAL(16) |
| -frealloc-lhs (-fno-realloc-lhs) | Разрешить переразмещение Allocatable левой части присваивания |
| Опции управления языковыми настройками Фортрана, влияющими на генерацию кода |
| -faggressive-function-elimination | Игнорировать функции с одинаковым списком аргументов внутри оператора, независимо от того, объявлены они как PURE или нет |
| -falign-commons (-fno-align-commons) | Разрешить (запретить) выравнивание в COMMON блоках |
| -fbacktrace (-fno-backtrace) | Выдавать стек при получении сигнала завершения |
| -ffortran-init-ieee (-fno-fortran-init-ieee) | Разрешить (запретить) чистку и восстановление флагов floating-point прерываний при работе с фортрановскими модулями вещественной арифметики |
| -ffortran-check-internal-func (-fno-fortran-check-internal-func) | Выдавать пользовательскую ошибку при встрече вложенной процедуры в качестве аргумента другой процедуры |
| -fbounds-check | Эквивалентно -fcheck=bounds |
| -fcheck-array-temporaries | Эквивалентно -fcheck=array-temps |
| -fcheck=<val> | Выдавать предупреждения во время исполнения. Значения <val> следующие: bounds (выход за границы массива, секции, строки), array-temps (создание временного массива в качестве аргумента процедуры), recursion (рекурсивный вызов нерекурсивной процедуры), do (неверные значения переменных цикла DO), pointer (использование неразмещённых переменных или неассоциированных указателей в качестве аргумента), mem (использование неразмещённой переменной в левой части присваивания) |
| -fcoarray=<val> | Установить способ работы с co-массивами. Значения <val> следующие: none (в программе не должно быть co-массивов), single (co-массивы в программе допускаются, но параллелизма нет), lib (указывается имя библиотеки, где реализован параллелизм) |
| -fconvert=<val> | Установить порядок байтов в представлении числа. Значения <val> следующие: big-endian (порядок байтов от старшего к младшему), little-endian (порядок байтов от младшего к старшему), native (значение по умолчанию), swap (обратное значению по умолчанию) |
| -ffpe-summary=<val> | Определить список floating-point прерываний для вывода. Допустимые значения <val>: all (все), none (никакие), либо, через запятую, любая комбинация из invalid, denormal, zero, overflow, underflow, inexact, precision |
| -ffpe-trap=<val> | Определить список floating-point прерываний для вывода и прервать исполнение программы при возникновения указанного прерывания исполнение программы. Допустимые значения <val> те же, что и в -ffpe-summary |
| -ffrontend-optimize (-fno-frontend-optimize) | Выполнять оптимизацию фронтенда во время обработки дерева разбора. Опция автоматически включается по любой опции оптимизации уровня -O1 и выше |
| -finit-character=<val> | Установить неявную инициализацию значением <val> для строковых переменных |
| -finit-derived | Установить неявную инициализацию компонент производного типа в соответствиим с другими опциями, которые начанаются на -finit |
| -finit-integer=<val> | Установить неявную инициализацию значением <val> для целочисленных переменных |
| -finit-local-zero | Установить неявную инициализацию нулём для всех локалов |
| -finit-logical=<val> | Установить неявную инициализацию значением <val> для логических переменных. Допустимые значения <val>: true, false |
| -finit-real=<val> | Установить неявную инициализацию значением <val> для вещественных переменных. Допустимые значения <val>: zero, snan, nan, inf, -inf |
| -finline-matmul-limit=<val> | Установить максимальный размер матрицы, при котором функцию matmul можно сделать inline |
| -fmax-array-constructor=<val> | Установить максимально допустимое количество элементов в конструкторе массива |
| -fmax-subrecord-length=<val> | Установить максимальную длину subrecord (для ввода-вывода) |
| -frecord-marker=<val> | Установить размер маркера длины записи для неформатированных файлов. Допустимые значения <val>: 4, 8 |
| -frecursive | Размещать локальные переменные на стеке, чтобы разрешить рекурсию |
| -fsecond-underscore (-fno-second-underscore) | Добавлять второй подчерк в имя функции, если уже есть один |
| -fsign-zero (-fno-sign-zero) | Добавлять знак при выводе отрицательного нулевого вещественного числа |
| -ftmp-stack-array-size=<val> | Распределять временные массивы на стеке, если их размер не более <val> байт, иначе в памяти |
| -funderscoring (-fno-underscoring) | Добавлять для внешних имён в конце подчерк |
| -fstrict-loop-counter | Включить строгое соблюдение стандарта при построении счётчика цикла |
| Опции, влияющие на программные соглашения |
| -fshort-wchar | В режиме C/C++ использовать тип unsigned short int для настройки типа wchar_t |
| -fshort-enums | В режиме C/C++ выделять минимально необходимое количество памяти для хранения enum'ов |
| Опции управления препроцессированием |
| -I <dir> (-I<dir>) | Добавить директорию <dir> к списку директорий для поиска заголовочных файлов |
| -J<dir> | Указать директорию для сохранения и использования информации о модуле Фортрана |
| -iquote <dir> (-iquote<dir>) | Добавить директорию <dir> к списку директорий для поиска заголовочных файлов, подключаемых только через #include "..." |
| -isystem <dir> (-isystem<dir>) | Добавить директорию <dir> к списку директорий для поиска системных заголовочных файлов |
| -idirafter <dir> (-idirafter<dir>) | Добавить директорию <dir> в конец списка директорий для поиска заголовочных файлов |
| -include <file> (--include <file>, -include<file>) | Включить файл <file> в самое начало компилируемой программы |
| -imacros <file> (--imacros <file>, -imacros<file>) | Опция аналогичная -include, но из файла <file> берутся только макроопределения |
| -D <name[=value]> (-D<name[=value]>) | Задать макроопределение для препроцессора |
| -U <name> (-U<name>) | Отменить макроопределение для препроцессора |
| -E | Только препроцессировать |
| -P | В режиме -E: не генерировать директивы #line |
| -C | В режиме -E: сохранять комментарии |
| -dM | В режиме -E: вместо препроцессирования печатать список макроопределений, полученных к концу компиляции |
| -dI | В режиме -E: включать в препроцессорную выдачу директивы #include |
| -dEE | В режиме -E: использовать расширенный вариант препроцессирования |
| -cpp (-nocpp) | Включить (выключить) предварительное препроцессирование для исходного текста на Фортране |
| -M | Генерировать список зависимостей для программы make и печатать их на экран, компиляцию не запускать |
| -MD | Генерировать список зависимостей для программы make и сохранять их в файл |
| -MM | Опция аналогична -M, но не формировать зависимости от системных файлов |
| -MMD | Опция аналогична -MD, но не формировать зависимости от системных файлов |
| -MT <name> (-MT<name>) | При использовании опции -M, -MM, -MD или -MMD: использовать имя цели <name> |
| -MQ <name> (-MQ<name>) | Аналогично -MT <name>, но при печати <name> экранировать символы, которые специальным образом трактуются программой make |
| -MF <file> (-MF<file>) | При использовании опции -MD или -MMD: сохранять зависимости в файле <file> |
| -MP | При использовании опции -M, -MM, -MD или -MMD: генерировать специальные цели на случай удаления требуемых файлов |
| -MG | При использовании опции -M, -MM: строить зависимости в том числе и для несуществующих файлов |
| -H | Печатать имена подключаемых заголовочных файлов |
| -undef | Не создавать дополнительных предопределенных макроопределений |
| -nostdinc | Не пользоваться стандартными путями поиска заголовочных файлов |
| -nostdinc++ | Не пользоваться стандартными путями поиска заголовочных файлов C++ |
| -finput-charset= | Установить кодировку входного текста программы |
| -fexec-charset= | Установить кодировку исполнения для ordinary строковых и символьных литералов |
| -fwide-exec-charset= | Установить кодировку исполнения для wide строковых и символьных литералов |
| -verbose-modules | Печатать имена подключаемых модулей Фортрана |
| Опции управления режимом компиляции |
| -fbuiltin (-fno-builtin) | Разрешить (запретить) замену некоторых стандартных функций на соответствующие builtin'ы |
| -fno-builtin-<func> | Запретить замену стандартной функции <func> на соответствующий builtin |
| -fcommon (-fno-common) | Разрешить (запретить) распределение переменных в секцию .common |
| -fsyntax-only | Только проверять синтаксис, не компилировать |
| -fPIC (-fno-PIC) | Генерировать позиционно-независимый код |
| -fpic (-fno-pic) | Аналогично -fPIC (-fno-PIC) |
| -fPIE (-fno-PIE) | Генерировать позиционно-независимый код, подходящий только для исполняемых файлов |
| -fpie (-fno-pie) | Аналогично -fPIE (-fno-PIE) |
| -frename-statics | Добавить имя файла к именам статических переменных и функций |
| Архитектурно-зависимые опции |
| -ffixed-<reg> | Запретить использование компилятором регистра <reg> |
| -fcall-used-<reg> | Отметить регистр <reg> как портящийся при вызовах |
| -masm-inline (-mno-asm-inline) | Разрешить (запретить) inline-подстановку gnu ассемблерных вставок (только в режиме с оптимизациями) |
| -masm-check (-mno-asm-check) | Разрешить (запретить) контроль правильности написания gnu ассемблерных вставок (только в режиме с оптимизациями) |
| -mdmodel=<dmodel> | Использовать модель данных <dmodel> |
| -mfunction-to-section=<section>:<func1>,<func2>,... | Функции <func1>, <func2>, ... принудительно распределить в секцию <section> |
| -mno-quad-memory-atomic | Запретить использование аппаратной поддержки при построении 16-байтных атомарных операций |
| -mno-unaligned-type-atomic | Запретить использование аппаратной поддержки при построении атомарных операций над типами, не имеющими по языку достаточное выравнивание |
| -mstrict-align (-mno-strict-align) | Запретить (разрешить) генерацию невыровненных обращений к памяти |
| -mold-asm-constraint-r (-mno-old-asm-constraint-r) | Использовать старую трактовку constraint "r" для аргументов ассемблерной вставки типа long double и 16-байтного векторного типа |
| -mold-register-asm-long-double (-mno-old-register-asm-long-double) | Использовать старую трактовку конструкции register asm для переменной типа long double |
| -mcheck-nv (-mno-check-nv) | Включить (выключить) режим проверки актуального типа операндов, которые должны иметь числовой тип |
| -mset-prepare-ct-delays-e48c | Установить задержки от подготовок переходов к переходам в соответствии с правилами планирования для Эльбрус-48C. Включена по умолчанию в режиме -mtune=elbrus-48c |
| -mfixed-gregs-base (-mno-fixed-gregs-base) | Разрешить преобразования, предполагающие отсутствие изменения базы вращения глобальных числовых регистров %g24-%g31 (предполагать, что инструкции ABG/ABGC/MODBGV не используются) |
| -fpermit-unaligned | Разрешить строить невыровненные обращения в память в случаях, где невыровненное обращение явно вытекает из языка |
| Опции защищённого режима |
| -mprot-va-arg-semi-spec (-mno-prot-va-arg-semi-spec) | Операции чтения скалярных значений через va_arg строить в полуспекулятивном режиме исполнения |
| -mprot-abi-promotion (-mno-prot-abi-promotion) | При передаче целочисленных значений размером 8 байт и меньше в качестве параметра или результата функции выполнять promotion значения до типа указателя |
| -mprot-all-sw-relax | Включить все имеющиеся программные ослабления защиты. Эквивалентно комбинации опций -mprot-va-arg-semi-spec, -mprot-abi-promotion |
| Опции отладочной информации |
| -g0 | Отключить генерацию отладочной информации |
| -gline | Генерировать информацию о номерах строк для дизассемблера |
| -g | Генерировать отладочную информацию |
| -g1, -g2, -g3, -gdwarf-2, -gdwarf-3, -gdwarf-4, -gdwarf-5, -gstabs, -ggdb, -ggdb1, -ggdb2, -ggdb3, -gno-as-loc-support | Эквивалентно опции -g (для совместимости с gcc) |
| -gline-tables-only | Генерировать отладочную информацию в объёме соответстветсвия кода и текста |
| -gstrict-dwarf (-gno-strict-dwarf) | При построении отладочной информации в формате DWARF-2 запретить использование конструкций из более поздних версий формата DWARF |
| -gdwarf64 (-gdwarf32) | При построении отладочной информации в формате DWARF-2 использовать (не использовать) формат "64-bit", являющийся частью формата DWARF-3 |
| -grecord-gcc-switches (-gno-record-gcc-switches) | При построении отладочной информации в формате DWARF-2 сохранять (не сохранять) опции командной строки |
| -gvect | Генерировать информацию для дизассемблера о числе малоформатных операций в векторных операциях |
| -fverbose-asm (-fno-verbose-asm) | Добавить дополнительные отладочные печати в ассемблерный файл |
| -fident (-fno-ident) | Строить в коде информацию для идентификации компилятора |
| -frecord-gcc-switches (-fno-record-gcc-switches) | Строить в коде информацию об исходной строке запуска компилятора |
| Опции, управляющие спекулятивным режимом исполнения |
| -fsemi-spec-ld (-fno-semi-spec-ld) | Разрешить снимать предикат с операций чтения из памяти и ставить их в полуспекулятивный режим исполнения |
| -fsemi-spec-ld-glob (-fno-semi-spec-ld-glob) | Разрешить снимать предикат с операций чтения глобальных переменных и ставить их в полуспекулятивный режим исполнения |
| -fsemi-spec-ld-stack (-fno-semi-spec-ld-stack) | Разрешить снимать предикат с операций чтения переменных в стеке и ставить их в полуспекулятивный режим исполнения |
| -fsemi-spec-ld-greg (-fno-semi-spec-ld-greg) | Разрешить снимать предикат с операций чтения по указателям из глобальных регистров и ставить их в полуспекулятивный режим исполнения |
| -fsemi-spec-lintel (-fno-semi-spec-lintel) | Ограничить снятие предиката и постановку чтений и записей в полуспекулятивный режим для сборки двоичного транслятора |
| -fspec-ld (-fno-spec-ld) | Разрешить снимать предикат с операций чтения из памяти и ставить их в спекулятивный режим исполнения с созданием компенсирующего кода |
| -fspec-volatile-st (-fno-spec-volatile-st) | Разрешить ставить в спекулятивный режим исполнения операции записи в память по указателю с квалификатором volatile |
| -fspec-fp (-fno-spec-fp) | Разрешить снимать предикат с вещественных операций и ставить их в спекулятивный режим исполнения |
| -fspec-ctp (-fno-spec-ctp) | Разрешить выносить из-под условия и исполнять спекулятивно операции подготовки перехода |
| Дополнительные опции |
| -faligned (-fno-aligned) | Разрешить оптимизации, рассчитывающие исключительно на выровненные обращения в память |
| -fexclude-ctpr2 | Отключить использование регистра %ctpr2 для подготовки переходов (необходим в режиме сборки ядра ОС Linux) |
| -fsysware | Задать режим сборки системного программного обеспечения (драйверов, Х-серверов и т.д.) |
| -fkernel | Задать режим сборки ядра ОС Linux. Подразумевается режим запрета прерываний при обработке системных регистров. Включает опции: -fno-semi-spec-ld, -fforce-inline, -fno-global-regs и др |
| -fforbid-fp | Запретить вещественные операции |
| -fipa-icf (-fno-ipa-icf) | Включить объединение функций с идентичным наполнением |
| -finline (-fno-inline) | Включить подстановку функций (включается по опции -O2) |
| -finline-functions | Включить более агрессивную подстановку функций (включается по опции -O3) |
| -finline-part (-fno-inline-part) | Включить частичную подстановку функций (включается по опции -O3) |
| -finline-to-small-functions (-fno-inline-to-small-functions) | Включить агрессивную подстановку в маленькие функции без явных вызовов |
| -finline-static-functions (-fno-inline-static-functions) | Включить агрессивную подстановку static функций в не-static функции |
| -finline-functions-called-once (-fno-inline-functions-called-once) | Включить агрессивную подстановку static функций с единственным вызовом |
| -finline-incomplete-profile | Учесть неполную профильную информацию при подстановке функций |
| -fsemantic-interposition (-fno-semantic-interposition) | В межпроцедурных оптимизациях учитывать возможный interposing of symbols при построении кода динамических библиотек |
| -ffreestanding | Задать режим компиляции вне стандартного окружения. Дополнительно включает -Wno-main, -Wno-builtin-functions-redefined, -fno-stdlib, -fno-builtin, -fno-use-memcpy, -fno-use-memset, -fno-malloc-opt |
| -fhosted | Задать режим компиляции в стандартном окружении |
| -fstdlib (-fno-stdlib) | Подразумевать, что стандартные C функции имеют обычную реализацию |
| -fno-use-memcpy | Не использовать вызов функции memcpy для копирования структур и __builtin_memcpy |
| -fno-use-memset | Не использовать вызов функции memset для __builtin_memset |
| -finhibit-size-directive | Не использовать директивы .size для функций в выходном ассемблерном тексте |
| -fvisibility=<visibility> | Задать значение __attribute__((visibility)) для переменных и функций без атрибута |
| -fvisibility-inlines-hidden (-fno-visibility-inlines-hidden) | Неявно задать __attribute__((visibility("hidden"))) для нешаблонных inline-методов класса, у которых нет явно описанного __attribute__((visibility)) |
| -ftls-model=<model> | Задать минимальное ограничение по модели tls, назначаемой компилятором переменным без явно заданного __attribute__((tls_model)) |
| -fstrict-aliasing (-fno-strict-aliasing) | Включить (выключить) анализ указателей на основе типов (tbaa) |
| -funsafe-strict-aliasing | Выключить анализ нарушений правил strict aliasing в анализе указателей на основе типов |
| -fstrict-aliasing-relaxed-char | Трактовать char как обычный тип в анализе указателей на основе типов |
| -fipa-attrs (-fno-ipa-attrs) | Включить (выключить) межпроцедурный анализ функций |
| -fskip-path-in-file-macro | При раскрытии макроса __FILE__ пропустить путь до файла и оставить только имя файла |
| -falign-functions (-fno-align-functions) | Выранивать большие функции на величину instruction cache line |
| -falign-functions=<val> | Выранивать большие функции на величину <val>, которая должна быть степенью двойки |
| -falign-jumps (-fno-align-jumps) | Выранивать инструкции, на которые можно попасть только переходом, на величину instruction cache line |
| -falign-jumps=<val> | Выранивать инструкции, на которые можно попасть только переходом, на величину <val> |
| -falign-loops (-fno-align-loops) | Выранивать циклы |
| -falign-loops=<n[:m]> | Выранивать циклы на величину, равную степени двойки, большей либо равной n, пропустив при этом не более m - 1 байт |
| -felim-redn-writes-through-ptr (-fno-elim-redn-writes-through-ptr) | Включение оптимизации Redundant Writes through Pointer Elimination -- удаление избыточных записей в таблицу виртуальных методов в деструкторах (включается при уровне оптимизации -O2 и выше) |
| -fvla-opt (-fno-vla-opt) | Включение всех оптимизаций, затрагивающих массивы переменной длины (vla) (включается при уровне оптимизации -O2 и выше) |
| -fvla-to-fixed-array (-fno-vla-to-fixed-array) | Включение оптимизации замены массивов переменной длины (vla) на массивы фиксированной длины (включается при уровне оптимизации -O2 и выше) |
| -fremove-wo-vla (-fno-remove-wo-vla) | Включение оптимизации удаления массивов переменной длины (vla), в которые есть только записи, но из которых нет ни одного чтения (включается при уровне оптимизации -O2 и выше) |
| -fremove-redn-vla-stack-builtins (-fno-remove-redn-vla-stack-builtins) | Включение оптимизации удаления ненужных __builtin_save_stack и __builtin_restore_stack (включается при уровне оптимизации -O2 и выше) |
| -fmax-stack-var-size=<val> | Установить максимальный размер (в байтах) массива, который можно разместить на стеке |
| -fdevirtualize (-fno-devirtualize) | Включить преобразование вызовов виртуальных функций в вызовы функций по имени |
| -fno-tls-opt | Запретить применение оптимизации TLS |
| -fno-tls-list=<proc1,proc2,...> | Запретить применение оптимизации TLS для указанных процедур |
| -fasm-entries-first | Конструкции asm entry печатать в начале ассемблерного файла, а не в конце |
| -fdata-sections (-fno-data-sections) | Размещать каждую глобальную переменную в отдельную секцию |
| -ffunction-sections (-fno-function-sections) | Размещать каждую функцию в отдельную секцию |
| -foptimize-sibling-calls (-fno-optimize-sibling-calls) | Включить оптимизации Tail Calls и Tail Recursion |
| -fdelete-null-pointer-checks (-fno-delete-null-pointer-checks) | Разрешить удаление проверок на нулевой указатель после обращения к полю объекта |
| -fdelete-nan-checks (-fno-delete-nan-checks) | Разрешить удаление проверок на NaN |
| -fno-gnu-unique | Запретить построение символов STB_GNU_UNIQUE |
| -fstruct-to-reg ( -fno-struct-to-reg) | Разрешить размещение локальных структур на регистрах |
| -funsafe-struct-to-reg | Разрешить размещение структур на регистрах в защищенном режиме. Не гарантируется корректное поведение программы в случае записи в поле структуры неинициализированнных данных |
| -fauto-var-expand (-fno-auto-var-expand) | Разрешить автоматическое повышение битовой разрядности переменных с 32 до 64 бит в циклах |
| -ffortran-extern-commons (-fno-fortran-extern-commons) | Сделать фортрановские common'ы видимыми за пределами текущего модуля |
| -ftrivial-auto-var-init=<choice> | Инициализировать автоматические локальные переменные |
| -fjump-tables (-fno-jump-tables) | Разрешить (запретить) использование таблицы переходов для построения оператора switch |
| Опции форматирования выдачи компилятора |
| -fmessage-length=<n> | Задать ограничение в <n> символов на ширину выдаваемых сообщений |
| -fdiagnostics-color | Эквивалентно -fdiagnostics-color=always |
| -fno-diagnostics-color | Эквивалентно -fdiagnostics-color=never |
| -fdiagnostics-color=<val> | Установить режим подкраски диагностических сообщений. Допустимые значения <val>: never, always, auto |
| Опции настройки выдачи ошибок |
| -Wfatal-errors (-Wno-fatal-errors) | Прервать работу после вывода первой ошибки |
| -fmax-errors=<n> | Прервать работу после вывода <n> ошибок |
| Опции предупреждений |
| -W#pragma-messages | Игнорируется |
| -W#warnings | Эквивалентно -Wcpp |
| -WCFString-literal | Игнорируется |
| -WCL4 | Игнорируется |
| -WIndependentClass-attribute | Игнорируется |
| -WNSObject-attribute | Игнорируется |
| -Wabi | Игнорируется |
| -Wabi=2 | Игнорируется |
| -Wabi-tag | Игнорируется |
| -Wabsolute-value | Игнорируется |
| -Wabstract-final-class | Игнорируется |
| -Wabstract-vbase-init | Игнорируется |
| -Waddress | Игнорируется |
| -Waddress-of-packed-member | Игнорируется |
| -Waddress-of-temporary | Игнорируется |
| -Waggregate-return | Игнорируется |
| -Waggressive-loop-optimizations | Игнорируется |
| -Walias-template-in-declaration-name | Игнорируется |
| -Waliasing | Для языка Фортран предупреждать о возможных совмещениях имён формальных аргументов |
| -Walign-commons | Для языка Фортран предупреждать о выравниваниях в COMMON блоках |
| -Walign-mismatch | Игнорируется |
| -Waligned-new | Игнорируется |
| -Waligned-new=all | Игнорируется |
| -Waligned-new=global | Игнорируется |
| -Waligned-new=none | Игнорируется |
| -Walignment-reduction-ignored | Предупреждать об игнорировании __attribute__((aligned)), вызывающего уменьшение выравнивания типа |
| -Walignof-incomplete-type | Предупреждать об использовании оператора __alignof__, применённого к незавершённому типу |
| -Wall | Для языков C/C++ эквивалентно комбинации опций -Waddress, -Warray-bounds, -Wc++11-compat, -Wc++14-compat, -Wchar-subscripts, -Wcomment, -Wenum-compare, -Wimplicit-int, -Wimplicit-function-declaration, -Wformat, -Wmain (в режиме языка C), -Wmaybe-return-local-addr, -Wmaybe-uninitialized, -Wnonnull, -Wparentheses, -Wpointer-sign, -Wreorder, -Wreturn-local-addr, -Wreturn-type, -Wsequence-point, -Wsign-compare (в режиме языка C++), -Wsigned-one-bit-field, -Wstrict-aliasing, -Wstrict-overflow=1, -Wtrigraphs, -Wuninitialized, -Wunknown-pragmas, -Wunused-but-set-variable, -Wunused-function, -Wunused-label, -Wunused-local-typedefs, -Wunused-value, -Wunused-variable, -Wvolatile-register-var. Для языка Фортран эквивалентно комбинации опций -Waliasing, -Wampersand, -Wc-binding-type, -Wconversion, -Winteger-division, -Wintrinsic-shadow, -Wintrinsics-std, -Wline-truncation, -Wmaybe-uninitialized, -Wreal-q-constant, -Wreturn-type, -Wsurprising, -Wtabs, -Wtarget-lifetime, -Wundefined-do-loop, -Wuninitialized, -Wunused, -Wzerotrip |
| -Wall-protected | Эквивалентно комбинации опций -Warray-bounds, -Wint32-to-pointer-cast-protected, -Wint64-to-pointer-cast-protected, -Wint128-to-pointer-cast-protected, -Wintdescr-to-pointer-cast-protected, -Wpointer-to-int32-cast-protected, -Wpointer-to-int64-cast-protected, -Wpointer-to-int128-cast-protected, -Wpointer-to-intdescr-cast-protected, -Wuninitialized-extra, -Wmaybe-uninitialized-extra |
| -Walloc-size | Игнорируется |
| -Walloc-size-check | Предупреждать о недопустимом размере выделяемой памяти в модели данных -mdmodel=medium |
| -Walloc-zero | Игнорируется |
| -Walloca | Игнорируется |
| -Walloca-with-align-alignof | Игнорируется |
| -Walways-inline-coroutine | Игнорируется |
| -Wambiguous-delete | Игнорируется |
| -Wambiguous-ellipsis | Игнорируется |
| -Wambiguous-macro | Игнорируется |
| -Wambiguous-member-template | Игнорируется |
| -Wambiguous-reversed-operator | Игнорируется |
| -Wampersand | Для языка Фортран предупреждать об отсутствующем символе "&" в продолжении строковой константы |
| -Wanalyzer-incompatible-plugin | Игнорируется |
| -Wanon-enum-enum-conversion | Игнорируется |
| -Wanonymous-pack-parens | Игнорируется |
| -Wapinotes | Игнорируется |
| -Warg-mismatch | Предупреждать о несовместимости типов формальных и фактических параметров в режиме -fwhole |
| -Wargument-mismatch | Для языка Фортран предупреждать о различии типа или размерности у формальных и фактических аргументов |
| -Wargument-outside-range | Игнорируется |
| -Wargument-undefined-behaviour | Игнорируется |
| -Warith-conversion | Игнорируется |
| -Warray-bounds | Предупреждать о выходе за границу массива (начиная с уровня -O2). Кроме случаев, описанных в документации |
| -Warray-bounds=0 | Игнорируется |
| -Warray-bounds=1 | Эквивалентно -Warray-bounds |
| -Warray-bounds=2 | Игнорируется |
| -Warray-bounds-all | Аналогично -Warray-bounds, но без исключений. Включает в себя -Warray-bounds |
| -Warray-bounds-pointer-arithmetic | Игнорируется |
| -Warray-compare | Игнорируется |
| -Warray-compare-cxx26 | Игнорируется |
| -Warray-parameter | Игнорируется |
| -Warray-temporaries | Для языка Фортран предупреждать о создании временных массивов |
| -Wasm | Игнорируется |
| -Wasm-operand-widths | Игнорируется |
| -Wassign-enum | Игнорируется |
| -Wassign-intercept | Игнорируется |
| -Wassign-where-compare-meant | Предупреждать о предположительно ошибочном использовании "=" вместо "==" |
| -Wassume | Игнорируется |
| -Wat-protocol | Игнорируется |
| -Watimport-in-framework-header | Игнорируется |
| -Watomic-access | Игнорируется |
| -Watomic-alignment | Игнорируется |
| -Watomic-implicit-seq-cst | Игнорируется |
| -Watomic-memory-ordering | Эквивалентно -Winvalid-memory-model |
| -Watomic-properties | Игнорируется |
| -Watomic-property-with-user-defined-accessor | Игнорируется |
| -Wattribute-alias | Игнорируется |
| -Wattribute-alias=1 | Игнорируется |
| -Wattribute-alias=2 | Игнорируется |
| -Wattribute-packed-for-bitfield | Игнорируется |
| -Wattribute-statement | Игнорируется |
| -Wattribute-warning | Игнорируется |
| -Wattributes | Предупреждать о некорректном имени атрибута или неприменимости данного атрибута. Включает в себя -Wignored-attribute-cleanup, -Wincorrect-attribute-fallthrough |
| -Wauto-decl-extensions | Игнорируется |
| -Wauto-disable-vptr-sanitizer | Игнорируется |
| -Wauto-import | Игнорируется |
| -Wauto-storage-class | Игнорируется |
| -Wauto-var-id | Игнорируется |
| -Wavailability | Игнорируется |
| -Wavr-rtlib-linking-quirks | Игнорируется |
| -Wbackend-plugin | Игнорируется |
| -Wbackslash-newline-escape | Игнорируется |
| -Wbad-function-cast | Игнорируется |
| -Wbad-initializer-type | Предупреждать об инициализаторе несоответствующего типа |
| -Wbad-macro-redef | Предупреждать об переопределении макроса другим содержимым |
| -Wbad-return-value-type | Предупреждать о возврате значения несоответствующего типа |
| -Wbidi-chars | Игнорируется |
| -Wbidi-chars=any | Игнорируется |
| -Wbidi-chars=none | Игнорируется |
| -Wbidi-chars=ucn | Игнорируется |
| -Wbidi-chars=unpaired | Игнорируется |
| -Wbinary-literal | Игнорируется |
| -Wbind-to-temporary-copy | Игнорируется |
| -Wbinding-in-condition | Игнорируется |
| -Wbit-int-extension | Игнорируется |
| -Wbitfield-constant-conversion | Игнорируется |
| -Wbitfield-enum-conversion | Игнорируется |
| -Wbitfield-width | Игнорируется |
| -Wbitwise-conditional-parentheses | Игнорируется |
| -Wbitwise-instead-of-logical | Игнорируется |
| -Wbitwise-op-parentheses | Игнорируется |
| -Wblock-capture-autoreleasing | Игнорируется |
| -Wbool-compare | Игнорируется |
| -Wbool-conversion | Игнорируется |
| -Wbool-conversions | Игнорируется |
| -Wbool-operation | Игнорируется |
| -Wbounds-safety-counted-by-elt-type-unknown-size | Игнорируется |
| -Wbraced-scalar-init | Игнорируется |
| -Wbranch-protection | Игнорируется |
| -Wbridge-cast | Игнорируется |
| -Wbuiltin-assume-aligned-alignment | Игнорируется |
| -Wbuiltin-declaration-mismatch | Предупреждать об объявлении функций, совпадающих по имени с builtin'ом, но отличающихся прототипом |
| -Wbuiltin-functions-redefined | Предупреждать о наличии собственных реализаций библиотечных функций, которые должны раскрываться в режиме -fbuiltin |
| -Wbuiltin-macro-redefined | Игнорируется |
| -Wbuiltin-memcpy-chk-size | Игнорируется |
| -Wbuiltin-requires-header | Игнорируется |
| -Wc++-compat | Игнорируется |
| -Wc++0x-compat | Эквивалентно -Wc++11-compat |
| -Wc++0x-extensions | Игнорируется |
| -Wc++0x-narrowing | Игнорируется |
| -Wc++11-compat | Игнорируется |
| -Wc++11-compat-deprecated-writable-strings | Игнорируется |
| -Wc++11-compat-pedantic | Игнорируется |
| -Wc++11-compat-reserved-user-defined-literal | Игнорируется |
| -Wc++11-extensions | Игнорируется |
| -Wc++11-extra-semi | Игнорируется |
| -Wc++11-inline-namespace | Игнорируется |
| -Wc++11-long-long | Игнорируется |
| -Wc++11-narrowing | Игнорируется |
| -Wc++11-narrowing-const-reference | Игнорируется |
| -Wc++14-attribute-extensions | Игнорируется |
| -Wc++14-binary-literal | Игнорируется |
| -Wc++14-compat | Игнорируется |
| -Wc++14-compat-pedantic | Игнорируется |
| -Wc++14-extensions | Игнорируется |
| -Wc++17-attribute-extensions | Игнорируется |
| -Wc++17-compat | Игнорируется |
| -Wc++17-compat-mangling | Игнорируется |
| -Wc++17-compat-pedantic | Игнорируется |
| -Wc++17-extensions | Игнорируется |
| -Wc++1y-extensions | Игнорируется |
| -Wc++1z-compat | Игнорируется |
| -Wc++1z-compat-mangling | Игнорируется |
| -Wc++1z-extensions | Игнорируется |
| -Wc++20-attribute-extensions | Игнорируется |
| -Wc++20-compat | Игнорируется |
| -Wc++20-compat-pedantic | Игнорируется |
| -Wc++20-designator | Игнорируется |
| -Wc++20-extensions | Предупреждать о конструкциях, которые появились только в стандарте C++20, но в реальности поддерживаются и в режимах с более ранней версией стандарта C++ |
| -Wc++23-attribute-extensions | Игнорируется |
| -Wc++23-compat | Игнорируется |
| -Wc++23-extensions | Игнорируется |
| -Wc++23-lambda-attributes | Игнорируется |
| -Wc++26-extensions | Игнорируется |
| -Wc++2a-compat | Игнорируется |
| -Wc++2a-compat-pedantic | Игнорируется |
| -Wc++2a-extensions | Игнорируется |
| -Wc++2b-extensions | Игнорируется |
| -Wc++2c-compat | Игнорируется |
| -Wc++2c-extensions | Игнорируется |
| -Wc++98-c++11-c++14-c++17-compat | Игнорируется |
| -Wc++98-c++11-c++14-c++17-compat-pedantic | Игнорируется |
| -Wc++98-c++11-c++14-compat | Игнорируется |
| -Wc++98-c++11-c++14-compat-pedantic | Игнорируется |
| -Wc++98-c++11-compat | Игнорируется |
| -Wc++98-c++11-compat-binary-literal | Игнорируется |
| -Wc++98-c++11-compat-pedantic | Игнорируется |
| -Wc++98-compat | Игнорируется |
| -Wc++98-compat-bind-to-temporary-copy | Игнорируется |
| -Wc++98-compat-extra-semi | Игнорируется |
| -Wc++98-compat-local-type-template-args | Игнорируется |
| -Wc++98-compat-pedantic | Игнорируется |
| -Wc++98-compat-unnamed-type-template-args | Игнорируется |
| -Wc-binding-type | Для языка Фортран предупреждать о типе переменной, несовместимом с языком C |
| -Wc11-c23-compat | Игнорируется |
| -Wc11-c2x-compat | Игнорируется |
| -Wc11-extensions | Игнорируется |
| -Wc23-c2y-compat | Игнорируется |
| -Wc23-compat | Игнорируется |
| -Wc23-extensions | Игнорируется |
| -Wc2x-compat | Игнорируется |
| -Wc2x-extensions | Игнорируется |
| -Wc2y-extensions | Игнорируется |
| -Wc90-c99-compat | Игнорируется |
| -Wc99-c11-compat | Игнорируется |
| -Wc99-compat | Игнорируется |
| -Wc99-designator | Игнорируется |
| -Wc99-extensions | Игнорируется |
| -Wcall-to-pure-virtual-from-ctor-dtor | Игнорируется |
| -Wcalled-once-parameter | Игнорируется |
| -Wcalloc-transposed-args | Игнорируется |
| -Wcannot-profile | Игнорируется |
| -Wcast-align | Игнорируется |
| -Wcast-align=strict | Игнорируется |
| -Wcast-calling-convention | Игнорируется |
| -Wcast-function-type | Игнорируется |
| -Wcast-function-type-mismatch | Игнорируется |
| -Wcast-function-type-strict | Игнорируется |
| -Wcast-of-sel-type | Игнорируется |
| -Wcast-qual | Игнорируется |
| -Wcast-qual-unrelated | Игнорируется |
| -Wcast-result | Игнорируется |
| -Wcast-user-defined | Игнорируется |
| -Wcatch-value | Игнорируется |
| -Wcatch-value=0 | Игнорируется |
| -Wcatch-value=1 | Игнорируется |
| -Wcatch-value=2 | Игнорируется |
| -Wcatch-value=3 | Игнорируется |
| -Wchanges-meaning | Игнорируется |
| -Wchar-align | Игнорируется |
| -Wchar-subscripts | Игнорируется |
| -Wcharacter-truncation | Для языка Фортран предупреждать об обрубании символьных выражений |
| -Wchkp | Игнорируется |
| -Wclang-cl-pch | Игнорируется |
| -Wclass-conversion | Игнорируется |
| -Wclass-memaccess | Игнорируется |
| -Wclass-varargs | Игнорируется |
| -Wclobbered | Игнорируется |
| -Wcmse-union-leak | Игнорируется |
| -Wcomma | Игнорируется |
| -Wcomma-subscript | Игнорируется |
| -Wcomment | Предупреждать о вложенных комментариях |
| -Wcomments | Эквивалентно -Wcomment |
| -Wcompare-distinct-pointer-types | Игнорируется |
| -Wcompare-reals | Для языка Фортран предупреждать о сравнении на равенство (неравенство) вещественных или комплексных |
| -Wcomplain-wrong-lang | Игнорируется |
| -Wcompletion-handler | Игнорируется |
| -Wcomplex-component-init | Игнорируется |
| -Wcompound-token-split | Игнорируется |
| -Wcompound-token-split-by-macro | Игнорируется |
| -Wcompound-token-split-by-space | Игнорируется |
| -Wconditional-type-mismatch | Игнорируется |
| -Wconditional-uninitialized | Игнорируется |
| -Wconditionally-supported | Игнорируется |
| -Wconfig-macros | Игнорируется |
| -Wconstant-conversion | Игнорируется |
| -Wconstant-evaluated | Игнорируется |
| -Wconstant-evaluated-nonconstexpr | Предупреждать об использовании __builtin_is_constant_evaluated в не-constexpr контекстах (только в режиме языка C++) |
| -Wconstant-logical-operand | Игнорируется |
| -Wconstant-pointer-condition | Предупреждать об управляющих условных выражениях, являющихся константами |
| -Wconstant-var-in-c-const-expr | Предупреждать об использовании const переменных в местах, где допустимы только const выражения (только в режиме языка C) |
| -Wconstexpr-not-const | Игнорируется |
| -Wconstexpr-return-not-constant | Предупреждать о constexpr выражениях, которые не могут быть свёрнуты в константу |
| -Wconsumed | Игнорируется |
| -Wconversion | Предупреждать об операциях неявного преобразования типов, которые могут изменить значение. Включает в себя -Wfloat-conversion, -Winteger-sign-change |
| -Wconversion-extra | Для языка Фортран предупреждать о неявных преобразованиях (не для всех преобразований) |
| -Wconversion-function-not-usable | Для языка C++ предупреждать о том, что пользовательский оператор преобразования типа не будет использован |
| -Wconversion-null | Игнорируется |
| -Wcoro-non-aligned-allocation-function | Игнорируется |
| -Wcoroutine | Игнорируется |
| -Wcoroutine-missing-unhandled-exception | Игнорируется |
| -Wcoverage-invalid-line-number | Игнорируется |
| -Wcoverage-mismatch | В режиме -fprofile-use предупреждать о несоответствии между профилем и исходным текстом |
| -Wcoverage-too-many-conditions | Игнорируется |
| -Wcoverage-too-many-paths | Игнорируется |
| -Wcovered-switch-default | Игнорируется |
| -Wcpp | Реагировать на директивы #warning |
| -Wcstring-format-directive | Игнорируется |
| -Wctad-maybe-unsupported | Игнорируется |
| -Wctor-dtor-privacy | Игнорируется |
| -Wctu | Игнорируется |
| -Wcustom-atomic-properties | Игнорируется |
| -Wcxx-attribute-extension | Игнорируется |
| -Wdangling | Игнорируется |
| -Wdangling-assignment | Игнорируется |
| -Wdangling-assignment-gsl | Игнорируется |
| -Wdangling-capture | Игнорируется |
| -Wdangling-else | Игнорируется |
| -Wdangling-field | Игнорируется |
| -Wdangling-gsl | Игнорируется |
| -Wdangling-initializer-list | Игнорируется |
| -Wdangling-pointer | Игнорируется |
| -Wdangling-pointer= | Игнорируется |
| -Wdangling-reference | Игнорируется |
| -Wdate-time | Игнорируется |
| -Wdealloc-in-category | Игнорируется |
| -Wdebug-compression-unavailable | Игнорируется |
| -Wdeclaration-after-statement | Предупреждать об объявлениях переменных после операторов |
| -Wdeclaration-hides-builtin | Эквивалентно -Wbuiltin-declaration-mismatch |
| -Wdeclaration-missing-parameter-type | Игнорируется |
| -Wdecls-in-multiple-modules | Игнорируется |
| -Wdefaulted-function-deleted | Игнорируется |
| -Wdelayed-template-parsing-in-cxx20 | Игнорируется |
| -Wdelegating-ctor-cycles | Игнорируется |
| -Wdelete-abstract-non-virtual-dtor | Игнорируется |
| -Wdelete-incomplete | Для языка C++ предупреждать об использовании указателя незавершённого типа в операторе delete |
| -Wdelete-non-abstract-non-virtual-dtor | Игнорируется |
| -Wdelete-non-virtual-dtor | Игнорируется |
| -Wdelimited-escape-sequence-extension | Игнорируется |
| -Wdeprecate-lax-vec-conv-all | Игнорируется |
| -Wdeprecated | Предупреждать об использовании устаревших конструкций |
| -Wdeprecated-altivec-src-compat | Игнорируется |
| -Wdeprecated-anon-enum-enum-conversion | Игнорируется |
| -Wdeprecated-array-compare | Игнорируется |
| -Wdeprecated-asm-constraint-r | В режиме -mold-asm-constraint-r предупреждать об использовании в ассемблерных вставках constraint "r" для аргументов типа long double и 16-байтного векторного типа |
| -Wdeprecated-attributes | Игнорируется |
| -Wdeprecated-builtins | Игнорируется |
| -Wdeprecated-comma-subscript | Игнорируется |
| -Wdeprecated-copy | Игнорируется |
| -Wdeprecated-copy-dtor | Игнорируется |
| -Wdeprecated-copy-with-dtor | Игнорируется |
| -Wdeprecated-copy-with-user-provided-copy | Игнорируется |
| -Wdeprecated-copy-with-user-provided-dtor | Игнорируется |
| -Wdeprecated-coroutine | Игнорируется |
| -Wdeprecated-declarations | Предупреждать об использовании переменной, функции или типа с __attribute__((deprecated)) |
| -Wdeprecated-dynamic-exception-spec | Игнорируется |
| -Wdeprecated-enum-compare | Игнорируется |
| -Wdeprecated-enum-compare-conditional | Игнорируется |
| -Wdeprecated-enum-enum-conversion | Игнорируется |
| -Wdeprecated-enum-float-conversion | Игнорируется |
| -Wdeprecated-implementations | Игнорируется |
| -Wdeprecated-increment-bool | Игнорируется |
| -Wdeprecated-literal-operator | Игнорируется |
| -Wdeprecated-missing-comma-variadic-parameter | Игнорируется |
| -Wdeprecated-module-dot-map | Игнорируется |
| -Wdeprecated-no-relaxed-template-template-args | Игнорируется |
| -Wdeprecated-non-prototype | Игнорируется |
| -Wdeprecated-ofast | Игнорируется |
| -Wdeprecated-pragma | Игнорируется |
| -Wdeprecated-redundant-constexpr-static-def | Игнорируется |
| -Wdeprecated-register | Игнорируется |
| -Wdeprecated-register-asm-long-double | В режиме -mold-register-asm-long-double предупреждать об использовании extended регистра в конструкциях register asm для переменных типа long double |
| -Wdeprecated-this-capture | Игнорируется |
| -Wdeprecated-type | Игнорируется |
| -Wdeprecated-variadic-comma-omission | Игнорируется |
| -Wdeprecated-volatile | Игнорируется |
| -Wdeprecated-writable-strings | Игнорируется |
| -Wdesignated-init | Предупреждать о позиционной инициализации структуры, объявленной с __attribute__((designated_init)) |
| -Wdirect-ivar-access | Игнорируется |
| -Wdisabled-macro-expansion | Игнорируется |
| -Wdisabled-optimization | Игнорируется |
| -Wdiscard-qual | Игнорируется |
| -Wdiscarded-array-qualifiers | Игнорируется |
| -Wdiscarded-qualifiers | Предупреждать о неявном преобразовании типа между указателями, при котором теряются квалификаторы (только в режиме языка C, в языке C++ такие преобразования запрещены) |
| -Wdiv-by-zero | Предупреждать о целочисленном делении на ноль (начиная с уровня -O1) |
| -Wdivision-by-zero | Эквивалентно -Wdiv-by-zero |
| -Wdo-subscript | Игнорируется |
| -Wdocumentation | Игнорируется |
| -Wdocumentation-deprecated-sync | Игнорируется |
| -Wdocumentation-html | Игнорируется |
| -Wdocumentation-pedantic | Игнорируется |
| -Wdocumentation-unknown-command | Игнорируется |
| -Wdollar-in-identifier-extension | Игнорируется |
| -Wdouble-promotion | Игнорируется |
| -Wdtor-name | Игнорируется |
| -Wdtor-typedef | Игнорируется |
| -Wduplicate-clobber | Предупреждать о дублирующих описаниях clobber'ов ассемблерной вставки |
| -Wduplicate-decl-specifier | Игнорируется |
| -Wduplicate-enum | Игнорируется |
| -Wduplicate-method-arg | Игнорируется |
| -Wduplicate-method-match | Игнорируется |
| -Wduplicate-protocol | Игнорируется |
| -Wduplicate-specifier | Предупреждать о дублирующих спецификаторах |
| -Wduplicate-type-qualifier | Предупреждать о дублирующих квалификаторах типов |
| -Wduplicated-branches | Игнорируется |
| -Wduplicated-cond | Игнорируется |
| -Wdxil-validation | Игнорируется |
| -Wdynamic-class-memaccess | Игнорируется |
| -Wdynamic-exception-spec | Игнорируется |
| -Weager-load-cxx-named-modules | Игнорируется |
| -Weffc++ | Игнорируется |
| -Welaborated-enum-base | Игнорируется |
| -Welaborated-enum-class | Игнорируется |
| -Wembedded-directive | Игнорируется |
| -Wempty-body | Предупреждать о пустой последней альтернативе оператора if |
| -Wempty-decomposition | Игнорируется |
| -Wempty-init-stmt | Игнорируется |
| -Wempty-throw-specification | Предупреждать об использовании пустой throw-спецификации в режиме языка C++20 и выше |
| -Wempty-translation-unit | Игнорируется |
| -Wencode-type | Игнорируется |
| -Wendif-labels | Предупреждать о лишнем тексте после препроцессорных директив |
| -Wenum-compare | Предупреждать о сравнении величин различных enum-типов |
| -Wenum-compare-conditional | Игнорируется |
| -Wenum-compare-switch | Игнорируется |
| -Wenum-conversion | Игнорируется |
| -Wenum-enum-conversion | Игнорируется |
| -Wenum-float-conversion | Игнорируется |
| -Wenum-int-mismatch | Игнорируется |
| -Wenum-too-large | Игнорируется |
| -Weof-newline | Предупреждать об отсутствии перевода строки в конце файла |
| -Weverything | Игнорируется |
| -Wexceptions | Игнорируется |
| -Wexcess-initializers | Игнорируется |
| -Wexcessive-regsave | Игнорируется |
| -Wexit-time-destructors | Игнорируется |
| -Wexpansion-to-defined | Игнорируется |
| -Wexperimental-header-units | Игнорируется |
| -Wexperimental-option | Игнорируется |
| -Wexplicit-initialize-call | Игнорируется |
| -Wexplicit-ownership-type | Игнорируется |
| -Wexplicit-specialization-storage-class | Игнорируется |
| -Wexport-unnamed | Игнорируется |
| -Wextern-c-compat | Игнорируется |
| -Wextern-initializer | Игнорируется |
| -Wextern-inline-functions-redefined | Предупреждать о переопределении функций extern inline в режиме GNU C |
| -Wexternal-argument-mismatch | Игнорируется |
| -Wextra | Для языков C/C++ эквивалентно комбинации опций -Wclobbered, -Wempty-body, -Wignored-qualifiers, -Wmissing-parameter-type, -Wold-style-declaration, -Wsign-compare, -Wtype-limits, -Wuninitialized, -Wmaybe-uninitialized, -Wunused-parameter. Для языка Фортран эквивалентно комбинации опций -Wcompare-reals -Wunused-parameter -Wuninitialized |
| -Wextra-qualification | Игнорируется |
| -Wextra-semi | Игнорируется |
| -Wextra-semi-stmt | Игнорируется |
| -Wextra-semicolon | Предупреждать о лишних символах ';' |
| -Wextra-tokens | Эквивалентно -Wendif-labels |
| -Wextractapi-misuse | Игнорируется |
| -Wextraneous-template-head | Игнорируется |
| -Wfinal-dtor-non-final-class | Игнорируется |
| -Wfinal-macro | Игнорируется |
| -Wfixed-point-overflow | Игнорируется |
| -Wflag-enum | Игнорируется |
| -Wflex-array-member-not-at-end | Игнорируется |
| -Wflexible-array-extensions | Игнорируется |
| -Wfloat-conversion | Игнорируется |
| -Wfloat-equal | Игнорируется |
| -Wfloat-equals | Игнорируется |
| -Wfloat-overflow-conversion | Игнорируется |
| -Wfloat-zero-conversion | Игнорируется |
| -Wfor-loop-analysis | Игнорируется |
| -Wformat | Проверять аргументы вызова некоторых стандартных функций, работающих с форматной строкой. Включает в себя -Wformat-extra-args, -Wnonnull |
| -Wformat=1 | Эквивалентно -Wformat |
| -Wformat=2 | Эквивалентно комбинации опций -Wformat, -Wformat-nonliteral, -Wformat-security, -Wformat-y2k |
| -Wformat-contains-nul | Игнорируется |
| -Wformat-diag | Игнорируется |
| -Wformat-extra-args | Предупреждать о наличии лишних параметров в вызовах функций с форматной строкой типа printf и scanf |
| -Wformat-insufficient-args | Игнорируется |
| -Wformat-invalid-specifier | Игнорируется |
| -Wformat-non-iso | Игнорируется |
| -Wformat-nonliteral | Игнорируется |
| -Wformat-overflow | Игнорируется |
| -Wformat-overflow=0 | Игнорируется |
| -Wformat-overflow=1 | Игнорируется |
| -Wformat-overflow=2 | Игнорируется |
| -Wformat-overflow-non-kprintf | Игнорируется |
| -Wformat-overflow0 | Игнорируется |
| -Wformat-overflow1 | Игнорируется |
| -Wformat-overflow2 | Игнорируется |
| -Wformat-pedantic | Игнорируется |
| -Wformat-security | Игнорируется |
| -Wformat-signedness | Игнорируется |
| -Wformat-truncation | Игнорируется |
| -Wformat-truncation=0 | Игнорируется |
| -Wformat-truncation=1 | Игнорируется |
| -Wformat-truncation=2 | Игнорируется |
| -Wformat-truncation-non-kprintf | Игнорируется |
| -Wformat-type-confusion | Игнорируется |
| -Wformat-y2k | Игнорируется |
| -Wformat-zero-length | Игнорируется |
| -Wfortify-source | Игнорируется |
| -Wfour-char-constants | Игнорируется |
| -Wframe-address | Игнорируется |
| -Wframework-include-private-from-public | Игнорируется |
| -Wfree-labels | Игнорируется |
| -Wfree-nonheap-object | Игнорируется |
| -Wfriend-enum | Игнорируется |
| -Wfunc-prototypes | Игнорируется. Опция устарела и будет удалена в будущих версиях компилятора |
| -Wfunction-effects | Игнорируется |
| -Wfunction-elimination | Для языка Фортран предупреждать об игнорировании вызова функции |
| -Wfunction-multiversion | Игнорируется |
| -Wfuse-ld-path | Игнорируется |
| -Wfuture-attribute-extensions | Игнорируется |
| -Wfuture-compat | Игнорируется |
| -Wgcc-compat | Игнорируется |
| -Wglobal-constructors | Игнорируется |
| -Wglobal-isel | Игнорируется |
| -Wglobal-module | Игнорируется |
| -Wgnu | Игнорируется |
| -Wgnu-alignof-expression | Игнорируется |
| -Wgnu-anonymous-struct | Игнорируется |
| -Wgnu-array-member-paren-init | Игнорируется |
| -Wgnu-auto-type | Игнорируется |
| -Wgnu-binary-literal | Игнорируется |
| -Wgnu-case-range | Игнорируется |
| -Wgnu-complex-integer | Игнорируется |
| -Wgnu-compound-literal-initializer | Игнорируется |
| -Wgnu-conditional-omitted-operand | Игнорируется |
| -Wgnu-designator | Игнорируется |
| -Wgnu-empty-initializer | Игнорируется |
| -Wgnu-empty-struct | Игнорируется |
| -Wgnu-flexible-array-initializer | Игнорируется |
| -Wgnu-flexible-array-union-member | Игнорируется |
| -Wgnu-folding-constant | Игнорируется |
| -Wgnu-imaginary-constant | Игнорируется |
| -Wgnu-include-next | Игнорируется |
| -Wgnu-inline-cpp-without-extern | Игнорируется |
| -Wgnu-label-as-value | Игнорируется |
| -Wgnu-line-marker | Игнорируется |
| -Wgnu-null-pointer-arithmetic | Игнорируется |
| -Wgnu-offsetof-extensions | Игнорируется |
| -Wgnu-pointer-arith | Эквивалентно -Wpointer-arith |
| -Wgnu-redeclared-enum | Игнорируется |
| -Wgnu-statement-expression | Игнорируется |
| -Wgnu-statement-expression-from-macro-expansion | Игнорируется |
| -Wgnu-static-float-init | Игнорируется |
| -Wgnu-string-literal-operator-template | Игнорируется |
| -Wgnu-union-cast | Игнорируется |
| -Wgnu-variable-sized-type-not-at-end | Игнорируется |
| -Wgnu-zero-line-directive | Игнорируется |
| -Wgnu-zero-variadic-macro-arguments | Игнорируется |
| -Wgpu-maybe-wrong-side | Игнорируется |
| -Whardened | Игнорируется |
| -Wheader-guard | Игнорируется |
| -Wheader-hygiene | Игнорируется |
| -Whigher-precision-for-complex-division | Игнорируется |
| -Whip-omp-target-directives | Игнорируется |
| -Whip-only | Игнорируется |
| -Whsa | Игнорируется |
| -Widiomatic-parentheses | Игнорируется |
| -Wif-not-aligned | Игнорируется |
| -Wignored-attribute-cleanup | Предупреждать об игнорировании __attribute__((cleanup)) в режиме C++ |
| -Wignored-attributes | Игнорируется |
| -Wignored-availability-without-sdk-settings | Игнорируется |
| -Wignored-gch | Игнорируется |
| -Wignored-optimization-argument | Игнорируется |
| -Wignored-pragma-intrinsic | Игнорируется |
| -Wignored-pragma-optimize | Игнорируется |
| -Wignored-pragmas | Предупреждать об известных директивах #pragma, которые игнорируются в текущем режиме компиляции |
| -Wignored-qualifiers | Предупреждать об игнорируемых квалификаторах |
| -Wignored-reference-qualifiers | Игнорируется |
| -Wignored-unsupported-pragma-omp | Предупреждать об игнорировании директив #pragma omp, которые корректны с точки зрения поддерживаемой версии стандарта OpenMP, но сами пока ещё не поддержаны |
| -Wignored-using-declarations | Предупреждать об игнорируемых using-декларациях |
| -Wimplicit | Эквивалентно комбинации опций -Wimplicit-int, -Wimplicit-function-declaration |
| -Wimplicit-atomic-properties | Игнорируется |
| -Wimplicit-const-int-float-conversion | Игнорируется |
| -Wimplicit-conversion-floating-point-to-bool | Игнорируется |
| -Wimplicit-exception-spec-mismatch | Игнорируется |
| -Wimplicit-fallthrough | Игнорируется |
| -Wimplicit-fallthrough=0 | Игнорируется |
| -Wimplicit-fallthrough=1 | Игнорируется |
| -Wimplicit-fallthrough=2 | Игнорируется |
| -Wimplicit-fallthrough=3 | Игнорируется |
| -Wimplicit-fallthrough=4 | Игнорируется |
| -Wimplicit-fallthrough=5 | Игнорируется |
| -Wimplicit-fallthrough-per-function | Игнорируется |
| -Wimplicit-fixed-point-conversion | Игнорируется |
| -Wimplicit-float-conversion | Игнорируется |
| -Wimplicit-function-declaration | Предупреждать о неявных определениях функций (только в режиме языка C) |
| -Wimplicit-int | Предупреждать о неявном типе int для декларации функции без описания результата (только в режиме языка C) |
| -Wimplicit-int-conversion | Игнорируется |
| -Wimplicit-int-float-conversion | Игнорируется |
| -Wimplicit-interface | Для языка Фортран предупреждать о вызовах функций с неявным интерфейсом |
| -Wimplicit-procedure | Для языка Фортран предупреждать о вызовах процедур, у которых нет явного описания |
| -Wimplicit-retain-self | Игнорируется |
| -Wimplicit-vector-conversion | Предупреждать о неявном преобразовании типов для векторных типов с одинаковымы размерами, но разными базовыми типами |
| -Wimplicitly-unsigned-literal | Игнорируется |
| -Wimport | Игнорируется |
| -Wimport-implementation-partition-unit-in-interface-unit | Игнорируется |
| -Wimport-preprocessor-directive-pedantic | Игнорируется |
| -Winaccessible-base | Игнорируется |
| -Winclude-angled-in-module-purview | Игнорируется |
| -Winclude-next-absolute-path | Игнорируется |
| -Winclude-next-outside-header | Игнорируется |
| -Wincompatible-exception-spec | Игнорируется |
| -Wincompatible-function-pointer-types | Игнорируется |
| -Wincompatible-function-pointer-types-strict | Игнорируется |
| -Wincompatible-library-redeclaration | Эквивалентно -Wbuiltin-declaration-mismatch |
| -Wincompatible-operands | Предупреждать об использовании несовместимых типов операндов |
| -Wincompatible-pointer-types | Предупреждать о неявном преобразовании типа из указателя в указатель несовместимого типа (только в режиме языка C, в языке C++ такие преобразования запрещены) |
| -Wincompatible-pointer-types-discards-qualifiers | Эквивалентно -Wdiscarded-qualifiers |
| -Wincompatible-property-type | Игнорируется |
| -Wincompatible-sysroot | Игнорируется |
| -Wincompatible-types-conditional-operator | Предупреждать о несовместимых типах аргументов тернарного условного оператора |
| -Wincomplete-framework-module-declaration | Игнорируется |
| -Wincomplete-implementation | Игнорируется |
| -Wincomplete-module | Игнорируется |
| -Wincomplete-setjmp-declaration | Игнорируется |
| -Wincomplete-umbrella | Игнорируется |
| -Winconsistent-missing-destructor-override | Игнорируется |
| -Winconsistent-missing-override | Игнорируется |
| -Wincorrect-attribute-fallthrough | Для языков C/C++ предупреждать о случаях неправильного использования __attribute__((fallthrough)) внутри оператора switch |
| -Wincorrect-no-math-errno | Для языков C/C++ предупреждать о случаях неправильного использования опции -fno-math-errno |
| -Wincrement-bool | Игнорируется |
| -Winfinite-recursion | Игнорируется |
| -Winherited-variadic-ctor | Игнорируется |
| -Winit-list-lifetime | Игнорируется |
| -Winit-self | Игнорируется |
| -Winitializer-overrides | Игнорируется |
| -Winjected-class-name | Игнорируется |
| -Winline | Предупреждать о невозможности inline-подстановки функций (начиная с уровня -O2) |
| -Winline-asm | Игнорируется |
| -Winline-namespace-reopened-noninline | Игнорируется |
| -Winline-new-delete | Игнорируется |
| -Winline-noinline-conflict | Предупреждать о конфликтах между inline и noinline |
| -Winstallapi-violation | Игнорируется |
| -Winstantiation-after-specialization | Игнорируется |
| -Wint-conversion | Предупреждать о неявном преобразовании типа из целого в указатель и из указателя в целое (только в режиме языка C, в языке C++ такие преобразования запрещены) |
| -Wint-conversions | Игнорируется |
| -Wint-in-bool-context | Игнорируется |
| -Wint-to-pointer-cast | Предупреждать о явном преобразовании типа из целого в указатель с отличающимся размером. В защищённом режиме опция игнорируется |
| -Wint-to-pointer-cast-same-size | Предупреждать о явном преобразовании типа из целого в указатель с совпадающим размером. В защищённом режиме опция игнорируется |
| -Wint-to-void-pointer-cast | Игнорируется |
| -Wint128-to-pointer-cast-protected | В защищённом режиме предупреждать о явном преобразовании типа из целого размером 128 бит в указатель |
| -Wint32-to-pointer-cast-protected | В защищённом режиме предупреждать о явном преобразовании типа из целого размером 32 бита и меньше в указатель |
| -Wint64-to-pointer-cast-protected | В защищённом режиме предупреждать о явном преобразовании типа из целого размером 64 бита в указатель |
| -Wintdescr-to-pointer-cast-protected | В защищённом режиме предупреждать о явном преобразовании типа из intdescr в указатель |
| -Winteger-division | Для языка Фортран предупреждать о делении целых констант с обрубанием результата |
| -Winteger-overflow | Игнорируется |
| -Winteger-sign-change | Предупреждать о преобразовании типа, приводящего к изменению знака целого |
| -Winterference-size | Игнорируется |
| -Wintrinsic-shadow | Для языка Фортран предупреждать о совпадении имён пользовательской и встроенной процедур |
| -Wintrinsics-std | Для языка Фортран предупреждать о встроенной функции, которая не входит в указанный стандарт |
| -Winvalid-builtin-arg | Предупреждать о некорректных параметрах некоторых builtin-функций (начиная с уровня -O1) |
| -Winvalid-command-line-argument | Игнорируется |
| -Winvalid-constexpr | Игнорируется |
| -Winvalid-feature-combination | Игнорируется |
| -Winvalid-gnu-asm-cast | Игнорируется |
| -Winvalid-iboutlet | Игнорируется |
| -Winvalid-imported-macros | Игнорируется |
| -Winvalid-initializer-from-system-header | Игнорируется |
| -Winvalid-memory-model | Предупреждать о некорректных параметрах, соответствующих модели памяти в атомарных builtin'ах |
| -Winvalid-no-builtin-names | Игнорируется |
| -Winvalid-noreturn | Игнорируется |
| -Winvalid-offsetof | Предупреждать о некорректном использовании offsetof и __builtin_offsetof (только в режиме языка C++) |
| -Winvalid-or-nonexistent-directory | Игнорируется |
| -Winvalid-partial-specialization | Игнорируется |
| -Winvalid-pch | Игнорируется |
| -Winvalid-pp-token | Игнорируется |
| -Winvalid-pragma-parameter | Предупреждать о некорректных параметрах известных директив #pragma |
| -Winvalid-source-encoding | Игнорируется |
| -Winvalid-specialization | Игнорируется |
| -Winvalid-static-assert-message | Игнорируется |
| -Winvalid-token-paste | Игнорируется |
| -Winvalid-unevaluated-string | Игнорируется |
| -Winvalid-utf8 | Игнорируется |
| -Wjump-misses-init | Предупреждать о переходе через инициализацию |
| -Wjump-seh-finally | Игнорируется |
| -Wkeyword-compat | Игнорируется |
| -Wkeyword-macro | Игнорируется |
| -Wknr-promoted-parameter | Игнорируется |
| -Wlanguage-extension-token | Игнорируется |
| -Wlarge-by-value-copy | Игнорируется |
| -Wleading-whitespace=blanks | Игнорируется |
| -Wleading-whitespace=none | Игнорируется |
| -Wleading-whitespace=spaces | Игнорируется |
| -Wleading-whitespace=tabs | Игнорируется |
| -Wlegacy-constant-register-binding | Игнорируется |
| -Wliblto | Игнорируется |
| -Wline-truncation | Для языка Фортран предупреждать об обрубании строк исходного текста |
| -Wlinker-warnings | Игнорируется |
| -Wliteral-conversion | Игнорируется |
| -Wliteral-range | Игнорируется |
| -Wliteral-suffix | Предупреждать об использовании ud-suffix'ов, начинаяющихся с символов, отличных от знака подчерка (только в режиме языка C++) |
| -Wlocal-type-template-args | Игнорируется |
| -Wlogical-not-parentheses | Игнорируется |
| -Wlogical-op | Игнорируется |
| -Wlogical-op-parentheses | Игнорируется |
| -Wlong-long | Игнорируется |
| -Wloop-analysis | Игнорируется |
| -Wlto-type-mismatch | Игнорируется |
| -Wmacro-redefined | Эквивалентно -Wbad-macro-redef |
| -Wmain | Предупреждать о неверном объявлении функции main |
| -Wmain-return-type | Игнорируется |
| -Wmalformed-warning-check | Игнорируется |
| -Wmany-braces-around-scalar-init | Игнорируется |
| -Wmath-errno-enabled-with-veclib | Игнорируется |
| -Wmathematical-notation-identifier-extension | Игнорируется |
| -Wmax-tokens | Игнорируется |
| -Wmax-unsigned-zero | Игнорируется |
| -Wmaybe-musttail-local-addr | Игнорируется |
| -Wmaybe-return-local-addr | Предупреждать о возможном возврате из функции адреса автоматической переменной (начиная с уровня -O1) |
| -Wmaybe-uninitialized | Предупреждать об использовании возможно неинициализированных скалярных автоматических переменных (начиная с уровня -O1) |
| -Wmaybe-uninitialized-extra | Предупреждать о возможно неинициализированных автоматических переменных (начиная с уровня -O1) |
| -Wmaybe-use-out-of-scope | Для языков C/C++ предупреждать о возможном использовании адреса автоматического объекта за пределами времени его жизни (начиная с уровня -O1) |
| -Wmemset-elt-size | Игнорируется |
| -Wmemset-transposed-args | Игнорируется |
| -Wmemsize-comparison | Игнорируется |
| -Wmethod-signatures | Игнорируется |
| -Wmisexpect | Игнорируется |
| -Wmisleading-indentation | Игнорируется |
| -Wmismatched-dealloc | Игнорируется |
| -Wmismatched-new-delete | Игнорируется |
| -Wmismatched-parameter-types | Игнорируется |
| -Wmismatched-return-types | Игнорируется |
| -Wmismatched-special-enum | Игнорируется |
| -Wmismatched-tags | Игнорируется |
| -Wmissed-sysroot | Игнорируется |
| -Wmissing-attributes | Игнорируется |
| -Wmissing-braces | Игнорируется |
| -Wmissing-constinit | Игнорируется |
| -Wmissing-declarations | Игнорируется |
| -Wmissing-default-constructor-on-const | Предупреждать об отсутствии конструктора по умолчанию, если переменная такого класса описана без инициализации (только в режиме языка C++) |
| -Wmissing-designated-field-initializers | Игнорируется |
| -Wmissing-exception-spec | Игнорируется |
| -Wmissing-field-initializers | Игнорируется |
| -Wmissing-format-attribute | Игнорируется |
| -Wmissing-include-dirs | Для языка Фортран предупреждать о несуществующей include директории |
| -Wmissing-initializer-in-constructor | Предупреждать об отсутсвии в конструкторе инициализатора для константных или ссылочных полей (только в режиме языка C++) |
| -Wmissing-initializer-on-const | Предупреждать об отсутствии инициализатора у переменной с квалификатором const (только в режиме языка C) |
| -Wmissing-method-return-type | Игнорируется |
| -Wmissing-multilib | Игнорируется |
| -Wmissing-noescape | Игнорируется |
| -Wmissing-noreturn | Игнорируется |
| -Wmissing-parameter-name | Игнорируется |
| -Wmissing-parameter-type | Предупреждать об отсутствия типа у параметра функции K&R (только в режиме языка C) |
| -Wmissing-profile | В режиме -fprofile-use предупреждать об отсутствии профиля для модулей и функций |
| -Wmissing-prototype-for-cc | Игнорируется |
| -Wmissing-prototypes | Игнорируется |
| -Wmissing-requires | Игнорируется |
| -Wmissing-selector-name | Игнорируется |
| -Wmissing-sysroot | Игнорируется |
| -Wmissing-template-arg-list-after-template-kw | Игнорируется |
| -Wmissing-template-keyword | Игнорируется |
| -Wmissing-variable-declarations | Игнорируется |
| -Wmisspelled-assumption | Игнорируется |
| -Wmix-packoffset | Игнорируется |
| -Wmixed-enum-type | Предупреждать о смешивании enum и не-enum типов |
| -Wmodule-conflict | Игнорируется |
| -Wmodule-file-config-mismatch | Игнорируется |
| -Wmodule-file-extension | Игнорируется |
| -Wmodule-import-in-extern-c | Игнорируется |
| -Wmodules-ambiguous-internal-linkage | Игнорируется |
| -Wmodules-import-nested-redundant | Игнорируется |
| -Wmost | Игнорируется |
| -Wmove | Игнорируется |
| -Wmulti-gpu | Игнорируется |
| -Wmultichar | Предупреждать о наличии multichar литералов |
| -Wmultiple-inheritance | Игнорируется |
| -Wmultiple-move-vbase | Игнорируется |
| -Wmultistatement-macros | Игнорируется |
| -Wmusttail-local-addr | Игнорируется |
| -Wnamespaces | Игнорируется |
| -Wnan-infinity-disabled | Игнорируется |
| -Wnarrowing | Предупреждать о narrowing conversions |
| -Wnested-anon-types | Игнорируется |
| -Wnested-externs | Игнорируется |
| -Wnew-returns-null | Игнорируется |
| -Wnewline-eof | Игнорируется |
| -Wnoderef | Игнорируется |
| -Wnoexcept | Игнорируется |
| -Wnoexcept-type | Игнорируется |
| -Wnon-c-typedef-for-linkage | Игнорируется |
| -Wnon-gcc | Игнорируется |
| -Wnon-literal-null-conversion | Игнорируется |
| -Wnon-modular-include-in-framework-module | Игнорируется |
| -Wnon-modular-include-in-module | Игнорируется |
| -Wnon-pod-varargs | Игнорируется |
| -Wnon-power-of-two-alignment | Игнорируется |
| -Wnon-template-friend | Игнорируется |
| -Wnon-virtual-dtor | Предупреждать о невиртуальном деструкторе базового класса |
| -Wnonnull | Предупреждать о передаче нулевого указателя в качестве аргумента, помеченного через __attribute__((nonnull)) |
| -Wnonnull-compare | Игнорируется |
| -Wnonportable-cfstrings | Игнорируется |
| -Wnonportable-include-path | Игнорируется |
| -Wnonportable-private-apinotes-path | Игнорируется |
| -Wnonportable-private-system-apinotes-path | Игнорируется |
| -Wnonportable-sycl | Игнорируется |
| -Wnonportable-system-include-path | Игнорируется |
| -Wnonportable-vector-initialization | Игнорируется |
| -Wnonstd-extra-comma | Предупреждать о замыкающих запятых, не соответствующих стандарту |
| -Wnontrivial-memaccess | Игнорируется |
| -Wnontrivial-memcall | Игнорируется |
| -Wnormalized | Игнорируется |
| -Wnormalized=id | Игнорируется |
| -Wnormalized=nfc | Игнорируется |
| -Wnormalized=nfkc | Игнорируется |
| -Wnormalized=none | Игнорируется |
| -Wnrvo | Игнорируется |
| -Wnsconsumed-mismatch | Игнорируется |
| -Wnsreturns-mismatch | Игнорируется |
| -Wnull-arithmetic | Игнорируется |
| -Wnull-character | Игнорируется |
| -Wnull-conversion | Игнорируется |
| -Wnull-dereference | Игнорируется |
| -Wnull-pointer-arithmetic | Игнорируется |
| -Wnull-pointer-subtraction | Игнорируется |
| -Wnullability | Игнорируется |
| -Wnullability-completeness | Игнорируется |
| -Wnullability-completeness-on-arrays | Игнорируется |
| -Wnullability-declspec | Игнорируется |
| -Wnullability-extension | Игнорируется |
| -Wnullability-inferred-on-nested-type | Игнорируется |
| -Wnullable-to-nonnull-conversion | Игнорируется |
| -Wnvcc-compat | Игнорируется |
| -Wodr | В режиме -fwhole предупреждать о нарушении One Definition Rule |
| -Wold-style-cast | Игнорируется |
| -Wold-style-declaration | Предупреждать о декларациях в устаревшем стиле (только в режиме языка C) |
| -Wold-style-definition | Предупреждать об описании процедуры в старом стиле (только в режиме языка C). Включает в себя -Wimplicit-function-declaration, -Wimplicit-int |
| -Womit-vla-deallocate | Предупреждать о непостроении VLA-deallocate |
| -Wopenacc | Игнорируется |
| -Wopenacc-deprecated-clause-alias | Игнорируется |
| -Wopenacc-parallelism | Игнорируется |
| -Wopenacc-self-if-potential-conflict | Игнорируется |
| -Wopencl-unsupported-rgba | Игнорируется |
| -Wopenmp | Игнорируется |
| -Wopenmp-51-extensions | Игнорируется |
| -Wopenmp-clauses | Игнорируется |
| -Wopenmp-extensions | Игнорируется |
| -Wopenmp-loop-form | Игнорируется |
| -Wopenmp-mapping | Игнорируется |
| -Wopenmp-simd | Игнорируется |
| -Wopenmp-target | Игнорируется |
| -Wopenmp-target-exception | Игнорируется |
| -Woption-ignored | Игнорируется |
| -Wordered-compare-function-pointers | Игнорируется |
| -Worphan-pragmas | Предупреждать об известных директивах #pragma, которые поставлены в неправильном месте исходника |
| -Wout-of-line-declaration | Игнорируется |
| -Wout-of-scope-function | Игнорируется |
| -Wover-aligned | Игнорируется |
| -Woverflow | Предупреждать о целочисленном переполнении |
| -Woverlength-strings | Игнорируется |
| -Woverloaded-shift-op-parentheses | Игнорируется |
| -Woverloaded-virtual | Предупреждать об объявлениях виртуальных методов, которые скрывают виртуальные методы базового класса |
| -Woverloaded-virtual=1 | Игнорируется |
| -Woverloaded-virtual=2 | Эквивалентно -Woverloaded-virtual |
| -Woverride-init | Игнорируется |
| -Woverride-init-side-effects | Игнорируется |
| -Woverride-module | Игнорируется |
| -Woverriding-method-mismatch | Игнорируется |
| -Woverriding-option | Игнорируется |
| -Woverwrite-recursive | Игнорируется |
| -Wpacked | Игнорируется |
| -Wpacked-bitfield-compat | Игнорируется |
| -Wpacked-non-pod | Игнорируется |
| -Wpacked-not-aligned | Игнорируется |
| -Wpadded | Игнорируется |
| -Wpadded-bitfield | Игнорируется |
| -Wparam-id-list-needs-function-def | Предупреждать о списке параметров без описания типов в описании функции |
| -Wparentheses | Игнорируется |
| -Wparentheses-equality | Игнорируется |
| -Wpartial-availability | Игнорируется |
| -Wpartial-overloaded-virtual | Предупреждать о ситуациях, когда переопределены не все перегрузки виртуального метода |
| -Wpass-failed | Игнорируется |
| -Wpch-date-time | Игнорируется |
| -Wpch-vfs-diff | Игнорируется |
| -Wpedantic | Выдавать предупреждения о несоответствии строгому стандарту ISO C, ISO C++ или ISO Fortran. Дополнительно включает в себя -Wtypedef-redefinition, -Wdeclaration-after-statement (в режиме языка C89), -Wmain |
| -Wpedantic-core-features | Игнорируется |
| -Wpedantic-macros | Игнорируется |
| -Wperf-constraint-implies-noexcept | Игнорируется |
| -Wpessimizing-move | Игнорируется |
| -Wplacement-new | Игнорируется |
| -Wplacement-new= | Игнорируется |
| -Wpmf-conversions | Игнорируется |
| -Wpointer-arith | Предупреждать о вычислениях над указателями на функции или на void |
| -Wpointer-bool-conversion | Игнорируется |
| -Wpointer-compare | Игнорируется |
| -Wpointer-integer-compare | Игнорируется |
| -Wpointer-qual | Эквивалентно -Wdiscarded-qualifiers. Опция устарела и будет удалена в будущих версиях компилятора |
| -Wpointer-sign | Предупреждать о неявном преобразовании типа между указателями, отличающимися только знаковостью базовых типов (только в режиме языка C, в языке C++ такие преобразования запрещены) |
| -Wpointer-to-enum-cast | Игнорируется |
| -Wpointer-to-int-cast | Предупреждать о явном преобразовании типа из указателя в целое с отличающимся размером (только в режиме языка C). В защищённом режиме опция игнорируется |
| -Wpointer-to-int-cast-same-size | Предупреждать о явном преобразовании типа из указателя в целое с совпадающим размером (только в режиме языка C). В защищённом режиме опция игнорируется |
| -Wpointer-to-int128-cast-protected | В защищённом режиме предупреждать о явном преобразовании типа из указателя в целое размером 128 бит |
| -Wpointer-to-int32-cast-protected | В защищённом режиме предупреждать о явном преобразовании типа из указателя в целое размером 32 бита и меньше (только в режиме языка C, в языке C++ такие преобразования запрещены) |
| -Wpointer-to-int64-cast-protected | В защищённом режиме предупреждать о явном преобразовании типа из указателя в целое размером 64 бита |
| -Wpointer-to-intdescr-cast-protected | В защищённом режиме предупреждать о явном преобразовании типа из указателя в intdescr |
| -Wpointer-to-pointer-cast | Эквивалентно -Wincompatible-pointer-types. Опция устарела и будет удалена в будущих версиях компилятора |
| -Wpointer-type-mismatch | Игнорируется |
| -Wpoison-system-directories | Игнорируется |
| -Wpotentially-direct-selector | Игнорируется |
| -Wpotentially-evaluated-expression | Игнорируется |
| -Wpragma-clang-attribute | Игнорируется |
| -Wpragma-once-outside-header | Игнорируется |
| -Wpragma-pack | Игнорируется |
| -Wpragma-pack-suspicious-include | Игнорируется |
| -Wpragma-system-header-outside-header | Игнорируется |
| -Wpragma-unroll-check | Предупреждать (начиная с уровня -O2) о значениях pragma unroll, которые могут ухудшить производительность |
| -Wpragmas | Предупреждать о некорректном использовании директив #pragma |
| -Wpre-c++14-compat | Игнорируется |
| -Wpre-c++14-compat-pedantic | Игнорируется |
| -Wpre-c++17-compat | Игнорируется |
| -Wpre-c++17-compat-pedantic | Игнорируется |
| -Wpre-c++20-compat | Игнорируется |
| -Wpre-c++20-compat-pedantic | Игнорируется |
| -Wpre-c++23-compat | Игнорируется |
| -Wpre-c++23-compat-pedantic | Игнорируется |
| -Wpre-c++26-compat | Игнорируется |
| -Wpre-c++26-compat-pedantic | Игнорируется |
| -Wpre-c++2c-compat | Игнорируется |
| -Wpre-c++2c-compat-pedantic | Игнорируется |
| -Wpre-c11-compat | Игнорируется |
| -Wpre-c11-compat-pedantic | Игнорируется |
| -Wpre-c23-compat | Игнорируется |
| -Wpre-c23-compat-pedantic | Игнорируется |
| -Wpre-c2x-compat | Игнорируется |
| -Wpre-c2x-compat-pedantic | Игнорируется |
| -Wpre-c2y-compat | Игнорируется |
| -Wpre-c2y-compat-pedantic | Игнорируется |
| -Wpre-openmp-51-compat | Игнорируется |
| -Wpredefined-identifier-outside-function | Игнорируется |
| -Wprio-ctor-dtor | Игнорируется |
| -Wprivate-extern | Игнорируется |
| -Wprivate-header | Игнорируется |
| -Wprivate-module | Игнорируется |
| -Wprofile-instr-missing | Игнорируется |
| -Wprofile-instr-out-of-date | Игнорируется |
| -Wprofile-instr-unprofiled | Игнорируется |
| -Wproperty-access-dot-syntax | Игнорируется |
| -Wproperty-assign-default | Игнорируется |
| -Wproperty-attribute-mismatch | Игнорируется |
| -Wprotocol | Игнорируется |
| -Wprotocol-property-synthesis-ambiguity | Игнорируется |
| -Wpsabi | Игнорируется |
| -Wptrauth-null-pointers | Игнорируется |
| -Wqualified-void-return-type | Игнорируется |
| -Wquoted-include-in-framework-header | Игнорируется |
| -Wrange-loop-analysis | Игнорируется |
| -Wrange-loop-bind-reference | Игнорируется |
| -Wrange-loop-construct | Игнорируется |
| -Wread-only-types | Игнорируется |
| -Wreadonly-iboutlet-property | Игнорируется |
| -Wreal-and-imag-applied-to-real-value | Предупреждать об операторах __real и __imag, применяемых к целочисленному или вещественному значению |
| -Wreal-q-constant | Для языка Фортран предупреждать о вещественных константах с обозначением экспоненты буквой "q" |
| -Wrealloc-lhs | Для языка Фортран предупреждать о том, что левая часть массивного присваивания будет заново размещена |
| -Wrealloc-lhs-all | Для языка Фортран предупреждать о том, что левая часть присваивания будет заново размещена |
| -Wreceiver-expr | Игнорируется |
| -Wreceiver-forward-class | Игнорируется |
| -Wredeclared-class-member | Игнорируется |
| -Wreduced-alignment | Игнорируется. Опция устарела и будет удалена в будущих версиях компилятора |
| -Wredundant-attribute | Игнорируется |
| -Wredundant-consteval-if | Игнорируется |
| -Wredundant-decls | Игнорируется |
| -Wredundant-move | Игнорируется |
| -Wredundant-parens | Игнорируется |
| -Wredundant-tags | Игнорируется |
| -Wregister | Игнорируется |
| -Wreinterpret-base-class | Игнорируется |
| -Wreorder | Проверять порядок инициализации полей класса в конструкторе (только в режиме языка C++) |
| -Wreorder-ctor | Игнорируется |
| -Wreorder-init-list | Игнорируется |
| -Wrequires-super-attribute | Игнорируется |
| -Wreserved-attribute-identifier | Игнорируется |
| -Wreserved-id-macro | Игнорируется |
| -Wreserved-identifier | Игнорируется |
| -Wreserved-macro-identifier | Игнорируется |
| -Wreserved-module-identifier | Игнорируется |
| -Wreserved-user-defined-literal | Игнорируется |
| -Wrestrict | Игнорируется |
| -Wrestrict-expansion | Игнорируется |
| -Wretained-language-linkage | Игнорируется |
| -Wreturn-local-addr | Предупреждать о гарантированном возврате из функции адреса автоматической переменной (начиная с уровня -O1). Дополнительно включает в себя -Wmaybe-return-local-addr |
| -Wreturn-mismatch | Эквивалентно -Wbad-return-value-type |
| -Wreturn-stack-address | Эквивалентно -Wreturn-local-addr |
| -Wreturn-std-move | Игнорируется |
| -Wreturn-type | Предупреждать о неявных return из не-void функции (начиная с уровня -O1) |
| -Wreturn-type-c-linkage | Игнорируется |
| -Wrewrite-not-bool | Игнорируется |
| -Wrtti | Игнорируется |
| -Wsarif-format-unstable | Игнорируется |
| -Wscalar-storage-order | Игнорируется |
| -Wsection | Игнорируется |
| -Wselector | Игнорируется |
| -Wselector-type-mismatch | Игнорируется |
| -Wself-assign | Игнорируется |
| -Wself-assign-field | Игнорируется |
| -Wself-assign-overloaded | Игнорируется |
| -Wself-move | Игнорируется |
| -Wsemicolon-before-method-body | Игнорируется |
| -Wsentinel | Игнорируется |
| -Wsequence-point | Игнорируется |
| -Wserialized-diagnostics | Игнорируется |
| -Wshadow | Эквивалентно -Wshadow=global |
| -Wshadow-all | Игнорируется |
| -Wshadow-compatible-local | Эквивалентно -Wshadow=compatible-local |
| -Wshadow-field | Игнорируется |
| -Wshadow-field-in-constructor | Игнорируется |
| -Wshadow-field-in-constructor-modified | Игнорируется |
| -Wshadow-ivar | Игнорируется |
| -Wshadow-local | Эквивалентно -Wshadow=local |
| -Wshadow-uncaptured-local | Игнорируется |
| -Wshadow=compatible-local | Игнорируется |
| -Wshadow=global | Проверять, что локальная переменная скрывает другую переменную с таким же именем |
| -Wshadow=local | Игнорируется |
| -Wshift-count-negative | Предупреждать, если величина сдвига отрицательная |
| -Wshift-count-overflow | Предупреждать, если величина сдвига больше или равна битовому размеру типа аргумента сдвига |
| -Wshift-negative-value | Игнорируется |
| -Wshift-op-parentheses | Игнорируется |
| -Wshift-overflow | Игнорируется |
| -Wshift-overflow=1 | Игнорируется |
| -Wshift-overflow=2 | Игнорируется |
| -Wshift-sign-overflow | Игнорируется |
| -Wshorten-64-to-32 | Игнорируется |
| -Wsign-compare | Предупреждать о сравнении знаковых и беззнаковых величин |
| -Wsign-conversion | Игнорируется |
| -Wsign-promo | Игнорируется |
| -Wsigned-enum-bitfield | Игнорируется |
| -Wsigned-one-bit-field | Предупреждать о знаковом битовом поле размером 1 бит |
| -Wsigned-unsigned-wchar | Игнорируется |
| -Wsingle-bit-bitfield-constant-conversion | Игнорируется |
| -Wsized-deallocation | Игнорируется |
| -Wsizeof-array-argument | Игнорируется |
| -Wsizeof-array-decay | Игнорируется |
| -Wsizeof-array-div | Игнорируется |
| -Wsizeof-pointer-div | Игнорируется |
| -Wsizeof-pointer-memaccess | Игнорируется |
| -Wslash-u-filename | Игнорируется |
| -Wslh-asm-goto | Игнорируется |
| -Wsometimes-uninitialized | Эквивалентно -Wmaybe-uninitialized |
| -Wsource-mgr | Игнорируется |
| -Wsource-uses-openacc | Игнорируется |
| -Wsource-uses-openmp | Игнорируется |
| -Wspir-compat | Игнорируется |
| -Wspirv-compat | Игнорируется |
| -Wstack-exhausted | Игнорируется |
| -Wstack-protector | Игнорируется |
| -Wstatic-float-init | Игнорируется |
| -Wstatic-in-inline | Игнорируется |
| -Wstatic-inline-explicit-instantiation | Игнорируется |
| -Wstatic-local-in-inline | Игнорируется |
| -Wstatic-reference-in-c99-inline-function | Предупреждать о вызове static-функции или использовании static-переменной в inline-функции в режиме языка C99 и выше |
| -Wstatic-self-init | Игнорируется |
| -Wstdfunc-prototypes | Предупреждать о несоответствии прототипа со стандартным для функций, описанных в стандарте языка Си (начиная с уровня -O1). Работает только в режиме -fstdlib |
| -Wstdlibcxx-not-found | Игнорируется |
| -Wstrict-aliasing | Эквивалентно -Wstrict-aliasing=3 |
| -Wstrict-aliasing=1 | Предупреждать о приведениях типов, потенциально способных привести к нарушению правил перекрытия объектов в памяти. Работает только в режиме -fstrict-aliasing |
| -Wstrict-aliasing=2 | Предупреждать о возможных нарушениях правил перекрытия объектов в памяти. Работает только в режиме -fstrict-aliasing |
| -Wstrict-aliasing=3 | Предупреждать о гарантированных нарушениях правил перекрытия объектов в памяти. Работает только в режиме -fstrict-aliasing |
| -Wstrict-flex-arrays | Игнорируется |
| -Wstrict-null-sentinel | Игнорируется |
| -Wstrict-overflow | Игнорируется |
| -Wstrict-overflow=1 | Игнорируется |
| -Wstrict-overflow=2 | Игнорируется |
| -Wstrict-overflow=3 | Игнорируется |
| -Wstrict-overflow=4 | Игнорируется |
| -Wstrict-overflow=5 | Игнорируется |
| -Wstrict-potentially-direct-selector | Игнорируется |
| -Wstrict-primary-template-shadow | Игнорируется |
| -Wstrict-prototypes | Предупреждать об описании или определении функции без явного описания аргументов (только в режиме языка C) |
| -Wstrict-selector-match | Игнорируется |
| -Wstring-compare | Игнорируется |
| -Wstring-concatenation | Игнорируется |
| -Wstring-conversion | Игнорируется |
| -Wstring-plus-char | Игнорируется |
| -Wstring-plus-int | Игнорируется |
| -Wstringop-overflow | Игнорируется |
| -Wstringop-overflow=0 | Игнорируется |
| -Wstringop-overflow=1 | Игнорируется |
| -Wstringop-overflow=2 | Игнорируется |
| -Wstringop-overflow=3 | Игнорируется |
| -Wstringop-overflow=4 | Игнорируется |
| -Wstringop-overread | Игнорируется |
| -Wstringop-truncation | Игнорируется |
| -Wstrlcpy-strlcat-size | Игнорируется |
| -Wstrncat-size | Игнорируется |
| -Wsubobject-linkage | Игнорируется |
| -Wsuggest-attribute=cold | Для языков C/C++ предупреждать о случаях, где было бы полезно добавить __attribute__((cold)) |
| -Wsuggest-attribute=const | Для языков C/C++ предупреждать о случаях, где было бы полезно добавить __attribute__((const)) |
| -Wsuggest-attribute=format | Игнорируется |
| -Wsuggest-attribute=malloc | Для языков C/C++ предупреждать о случаях, где было бы полезно добавить __attribute__((malloc)) |
| -Wsuggest-attribute=noreturn | Для языков C/C++ предупреждать о случаях, где было бы полезно добавить __attribute__((noreturn)) |
| -Wsuggest-attribute=pure | Для языков C/C++ предупреждать о случаях, где было бы полезно добавить __attribute__((pure)) |
| -Wsuggest-destructor-override | Игнорируется |
| -Wsuggest-final-methods | Игнорируется |
| -Wsuggest-final-types | Игнорируется |
| -Wsuggest-override | Игнорируется |
| -Wsuper-class-method-mismatch | Игнорируется |
| -Wsurprising | Для языка Фортран предупреждать о подозрительных конструкциях |
| -Wsuspicious-bzero | Игнорируется |
| -Wsuspicious-memaccess | Игнорируется |
| -Wswift-name-attribute | Игнорируется |
| -Wswitch | Игнорируется |
| -Wswitch-bool | Игнорируется |
| -Wswitch-default | Игнорируется |
| -Wswitch-enum | Игнорируется |
| -Wswitch-outside-range | Игнорируется |
| -Wswitch-unreachable | Игнорируется |
| -Wsync-alignment | Игнорируется |
| -Wsync-fetch-and-nand-semantics-changed | Игнорируется |
| -Wsync-nand | Игнорируется |
| -Wsynth | Игнорируется |
| -Wtabs | Для языка Фортран предупреждать об использовании символа табуляции |
| -Wtarget-clones-mixed-specifiers | Игнорируется |
| -Wtarget-lifetime | Для языка Фортран предупреждать о возможно некорректном присваивании указателей |
| -Wtautological-bitwise-compare | Игнорируется |
| -Wtautological-compare | Игнорируется |
| -Wtautological-constant-compare | Игнорируется |
| -Wtautological-constant-in-range-compare | Игнорируется |
| -Wtautological-constant-out-of-range-compare | Игнорируется |
| -Wtautological-negation-compare | Игнорируется |
| -Wtautological-overlap-compare | Игнорируется |
| -Wtautological-pointer-compare | Игнорируется |
| -Wtautological-type-limit-compare | Игнорируется |
| -Wtautological-undefined-compare | Игнорируется |
| -Wtautological-unsigned-char-zero-compare | Игнорируется |
| -Wtautological-unsigned-enum-zero-compare | Игнорируется |
| -Wtautological-unsigned-zero-compare | Игнорируется |
| -Wtautological-value-range-compare | Игнорируется |
| -Wtcb-enforcement | Игнорируется |
| -Wtemplate-body | Игнорируется |
| -Wtemplate-id-cdtor | Игнорируется |
| -Wtemplate-in-declaration-name | Игнорируется |
| -Wtemplate-names-tu-local | Игнорируется |
| -Wtemplates | Игнорируется |
| -Wtentative-definition-array | Игнорируется |
| -Wtentative-definition-incomplete-type | Игнорируется |
| -Wterminate | Игнорируется |
| -Wthread-safety | Игнорируется |
| -Wthread-safety-analysis | Игнорируется |
| -Wthread-safety-attributes | Игнорируется |
| -Wthread-safety-beta | Игнорируется |
| -Wthread-safety-negative | Игнорируется |
| -Wthread-safety-precise | Игнорируется |
| -Wthread-safety-reference | Игнорируется |
| -Wthread-safety-reference-return | Игнорируется |
| -Wthread-safety-verbose | Игнорируется |
| -Wtraditional | Предупреждать о конструкциях, которые имеют различное поведение в традиционном и ISO C |
| -Wtraditional-conversion | Игнорируется |
| -Wtrailing-whitespace | Игнорируется |
| -Wtrailing-whitespace=any | Игнорируется |
| -Wtrailing-whitespace=blanks | Игнорируется |
| -Wtrailing-whitespace=none | Игнорируется |
| -Wtrampolines | Игнорируется |
| -Wtrigraphs | Игнорируется |
| -Wtrigraphs-ignored | Предупреждать о наличии триграфов в режимах, их не поддерживающих |
| -Wtrivial-auto-var-init | Игнорируется |
| -Wtsan | Игнорируется |
| -Wtype-limits | Предупреждать о бессмысленных сравнениях беззнаковой переменной с нулем |
| -Wtype-safety | Игнорируется |
| -Wtypedef-redefinition | Предупреждать о повторных typedef'ах с одним и тем же именем |
| -Wtypename-missing | Игнорируется |
| -Wunable-to-open-stats-file | Игнорируется |
| -Wunaligned-access | Игнорируется |
| -Wunaligned-qualifier-implicit-cast | Игнорируется |
| -Wunavailable-declarations | Игнорируется |
| -Wundeclared-selector | Игнорируется |
| -Wundef | Предупреждать об использовании ноля при препроцессировании для неопределенного идентификатора |
| -Wundef-prefix | Игнорируется |
| -Wundefined-bool-conversion | Игнорируется |
| -Wundefined-do-loop | Для языка Фортран предупреждать о о некорректном цикле "DO" |
| -Wundefined-func-template | Игнорируется |
| -Wundefined-inline | Игнорируется |
| -Wundefined-internal | Игнорируется |
| -Wundefined-internal-type | Игнорируется |
| -Wundefined-reinterpret-cast | Игнорируется |
| -Wundefined-var-template | Игнорируется |
| -Wunderflow | Для языка Фортран предупреждать о переполнении в константном выражении |
| -Wunevaluated-expression | Игнорируется |
| -Wunguarded-availability | Игнорируется |
| -Wunguarded-availability-new | Игнорируется |
| -Wunicode | Игнорируется |
| -Wunicode-homoglyph | Игнорируется |
| -Wunicode-whitespace | Игнорируется |
| -Wunicode-zero-width | Игнорируется |
| -Wuninitialized | Предупреждать об использовании гарантированно неинициализированных скалярных автоматических переменных (начиная с уровня -O1) |
| -Wuninitialized-const-reference | Игнорируется |
| -Wuninitialized-explicit-init | Игнорируется |
| -Wuninitialized-extra | Предупреждать о гарантированно неинициализированных автоматических переменных (начиная с уровня -O1) |
| -Wunknown-argument | Игнорируется |
| -Wunknown-assumption | Игнорируется |
| -Wunknown-attributes | Игнорируется |
| -Wunknown-directives | Игнорируется |
| -Wunknown-escape-sequence | Игнорируется |
| -Wunknown-pragmas | Предупреждать о неизвестных директивах #pragma |
| -Wunknown-sanitizers | Игнорируется |
| -Wunknown-warning-option | Игнорируется |
| -Wunnamed-type-template-args | Игнорируется |
| -Wunneeded-internal-declaration | Игнорируется |
| -Wunneeded-member-function | Игнорируется |
| -Wunqualified-std-cast-call | Игнорируется |
| -Wunreachable-code | Предупреждать о недостижимом коде |
| -Wunreachable-code-aggressive | Игнорируется |
| -Wunreachable-code-break | Игнорируется |
| -Wunreachable-code-fallthrough | Игнорируется |
| -Wunreachable-code-generic-assoc | Игнорируется |
| -Wunreachable-code-loop-increment | Игнорируется |
| -Wunreachable-code-return | Игнорируется |
| -Wunsafe-buffer-usage | Игнорируется |
| -Wunsafe-buffer-usage-in-container | Игнорируется |
| -Wunsafe-buffer-usage-in-libc-call | Игнорируется |
| -Wunsafe-loop-optimizations | Игнорируется |
| -Wunsequenced | Игнорируется |
| -Wunsuffixed-float-constants | Игнорируется |
| -Wunsupported-abi | Игнорируется |
| -Wunsupported-abs | Игнорируется |
| -Wunsupported-availability-guard | Игнорируется |
| -Wunsupported-cb | Игнорируется |
| -Wunsupported-floating-point-opt | Игнорируется |
| -Wunsupported-friend | Игнорируется |
| -Wunsupported-gpopt | Игнорируется |
| -Wunsupported-nan | Игнорируется |
| -Wunsupported-target-opt | Игнорируется |
| -Wunsupported-visibility | Игнорируется |
| -Wunterminated-string-initialization | Игнорируется |
| -Wunusable-partial-specialization | Игнорируется |
| -Wunused | Для языков C/C++ эквивалентно комбинации опций -Wunused-but-set-variable, -Wunused-function, -Wunused-label, -Wunused-local-typedefs, -Wunused-value, -Wunused-variable. Для языка Фортран эквивалентно комбинации опций -Wunused-dummy-argument, -Wunused-label, -Wunused-parameter, -Wunused-variable |
| -Wunused-argument | Игнорируется |
| -Wunused-builtin-result | Предупреждать о неиспользуемом результате вызова builtin-функции в случаях, когда это не имеет смысла (начиная с уровня -O1) |
| -Wunused-but-set-parameter | Предупреждать о неиспользованном формальном параметре, в который есть присваивание |
| -Wunused-but-set-variable | Предупреждать об инициализированных, но неиспользуемых переменных (начиная с уровня -O1) |
| -Wunused-command-line-argument | Игнорируется |
| -Wunused-comparison | Игнорируется |
| -Wunused-const-variable | Эквивалентно -Wunused-const-variable=2 |
| -Wunused-const-variable=1 | Предупреждать о неиспользуемых static const переменных. Только в главном компилируемом файле, но не в подключенных файлах через директивы #include |
| -Wunused-const-variable=2 | Предупреждать о неиспользуемых static const переменных, включая подключенные файлы через директивы #include. Включает в себя -Wunused-const-variable=1 |
| -Wunused-dummy-argument | Для языка Фортран предупреждать о неиспользованном формальном параметре |
| -Wunused-exception-parameter | Игнорируется |
| -Wunused-field | Предупреждать о неиспользуемых полях структур |
| -Wunused-function | Предупреждать о неиспользуемых функциях, кроме static inline функций |
| -Wunused-function-all | Предупреждать о неиспользуемых функциях. Включает в себя -Wunused-function |
| -Wunused-getter-return-value | Игнорируется |
| -Wunused-label | Предупреждать о неиспользуемых метках |
| -Wunused-lambda-capture | Игнорируется |
| -Wunused-local-typedef | Игнорируется |
| -Wunused-local-typedefs | Игнорируется |
| -Wunused-macros | Игнорируется |
| -Wunused-member-function | Игнорируется |
| -Wunused-parameter | Для языков C/C++ предупреждать о неиспользуемом параметре. Для языка Фортран предупреждать о неиспользованной именованной константе (PARAMETER) |
| -Wunused-private-field | Игнорируется |
| -Wunused-property-ivar | Игнорируется |
| -Wunused-result | Предупреждать о неиспользуемом результате вызова функции с __attribute__((warn_unused_result)) или [[nodiscard]] |
| -Wunused-template | Игнорируется |
| -Wunused-template-constructor-parameter | Для языка C++ предупреждать о неиспользуемом параметре шаблона в шаблоне конструктора |
| -Wunused-value | Предупреждать о выражениях, не имеющих эффекта |
| -Wunused-variable | Предупреждать о неиспользуемых переменных. В режиме языка C включает в себя -Wunused-const-variable=1 |
| -Wunused-variable-all | Эквивалентно -Wunused-variable. Опция устарела и будет удалена в будущих версиях компилятора |
| -Wunused-volatile-lvalue | Игнорируется |
| -Wuse-after-free | Игнорируется |
| -Wuse-after-free=1 | Игнорируется |
| -Wuse-after-free=2 | Игнорируется |
| -Wuse-after-free=3 | Игнорируется |
| -Wuse-without-only | Для языка Фортран предупреждать об использовании оператора USE без квалификатора ONLY |
| -Wused-but-marked-unused | Игнорируется |
| -Wuseless-cast | Игнорируется |
| -Wuser-defined-literals | Игнорируется |
| -Wuser-defined-warnings | Игнорируется |
| -Wvarargs | Игнорируется |
| -Wvariadic-macro-arguments-omitted | Игнорируется |
| -Wvariadic-macros | Игнорируется |
| -Wvec-elem-size | Игнорируется |
| -Wvector-conversion | Игнорируется |
| -Wvector-conversions | Игнорируется |
| -Wvector-operation-performance | Игнорируется |
| -Wvexing-parse | Игнорируется |
| -Wvirtual-inheritance | Игнорируется |
| -Wvirtual-move-assign | Игнорируется |
| -Wvisibility | Игнорируется |
| -Wvla | Игнорируется |
| -Wvla-cxx-extension | Игнорируется |
| -Wvla-extension | Игнорируется |
| -Wvla-extension-static-assert | Игнорируется |
| -Wvla-parameter | Игнорируется |
| -Wvoid-pointer-to-enum-cast | Игнорируется |
| -Wvoid-pointer-to-function-pointer-cast | Предупреждать о неявном преобразовании типа из указателя на void к указателю на функцию (только в режиме языка C, в языке C++ такие преобразования запрещены) |
| -Wvoid-pointer-to-int-cast | Игнорируется |
| -Wvoid-ptr-dereference | Игнорируется |
| -Wvolatile | Игнорируется |
| -Wvolatile-register-var | Игнорируется |
| -Wweak-template-vtables | Игнорируется |
| -Wweak-vtables | Игнорируется |
| -Wwritable-strings | Игнорируется |
| -Wwrite-strings | Предупреждать об использовании преобразования строкового литерала в тип char* |
| -Wxor-used-as-pow | Игнорируется |
| -Wzero-as-null-pointer-constant | Игнорируется |
| -Wzero-length-array | Игнорируется |
| -Wzero-length-bounds | Игнорируется |
| -Wzerotrip | Для языка Фортран предупреждать о неисполняемых циклах DO |
| -Wno-<warn> | Отключить предупреждения, соответствующие опции -W<warn>. Опции с неизвестным <warn> игнорируются |
| -Werror=<warn> (-Werror-<warn>) | Предупреждения, соответствующие опции -W<warn>, трактовать как ошибки |
| -Wno-error=<warn> | Предупреждения, соответствующие опции -W<warn>, не трактовать как ошибки и не превращать их в ошибки по опции -Werror |
| -Werror (-Wno-error) | Все предупреждения и замечания трактовать (не трактовать) как ошибки |
| -Wsystem-headers (-Wno-system-headers) | Для языков C/C++ выдавать (не выдавать) предупреждения и замечания в системных заголовочных файлах |
| -Wall-warnings | Отображать все возможные предупреждения, отменить действия всех опций -Werror=<...> |
| -Wno-all-warnings | Настройки предупреждений вернуть в состояние по умолчанию |
| -Wremarks (-Wno-remarks) | Включить (выключить) печать замечаний |
| -W | Эквивалентно -Wextra |
| -Wframe-larger-than=<size> | Предупреждать, если размер стека для процедуры превышает <size> байт |
| -Wlarger-than= | Игнорируется |
| -Wstack-usage= | Игнорируется |
| -pedantic | Эквивалентно -Wpedantic |
| -pedantic-errors | Эквивалентно -Werror=pedantic |
| -w | Подавлять все предупреждения и замечания компилятора, относящиеся к исходному тексту программы |
| -w<id> | Для языков C/C++ подавить предупреждение или замечание компилятора, относящееся к исходному тексту программы и имеющее номер <id>. Опция имеет самый низкий приоритет |
| Базовые опции оптимизаций |
| -O0 | Компилировать без оптимизаций |
| -O1 | Минимальный уровень оптимизаций. Включает только локальные платформо-независимые оптимизации. Предикатный и (полу)спекулятивный режимы исполнения операций не задействуются |
| -O2 | Более высокий уровень оптимизаций, сбалансированный по времени компиляции, производительности и размеру кода. Включает в себя оптимизации уровня -О1 и основные платформо-зависимые оптимизации |
| -Osize | Включает в себя все оптимизации уровня -O2, кроме тех, которые приводят к агрессивному росту размера кода |
| -O3 | Ещё более высокий уровень оптимизаций, нацеленный на получение высокой производительности. Включает оптимизации уровня -О2 и агрессивные платформо-зависимые оптимизации, которые могут приводить к значительному росту размера кода. Также, включает решатель (-fgos-solver) |
| -O4 | Максимальный уровень оптимизаций. Эквивалентно -O3 -fno-gos-solver |
| -Og | Эквивалентно -O0 |
| -Ominimal | Эквивалентно -O1 |
| -O | Эквивалентно -Osize |
| -Os | Эквивалентно -Osize |
| -Ofast | Эквивалентно -O3 -ffast-math -fstack-arrays (последнее - если не подана опция -fmax-stack-var-size) |
| -Og-devel | Эквивалентно -O1 |
| -fgos-solver (-fno-gos-solver) | Включение решателя для выбора оптимальной линейки оптимизаций в зависимости от свойств функции. Позволяет уменьшить время компиляции и размер кода |
| -fgos-profile | Разрешить использовать решатель в режиме -fprofile-use |
| -fcold-Osize | Использовать режим -Osize для компиляции холодных функций |
| Опции профилирования |
| -fprofile-use[=<file>] | Загрузить данные профилирования из файла <file> (по умолчанию eprof.sum) |
| -fprofile-generate[=<path>] | Инструментировать код программы для получения профиля в каталоге <path> (по умолчанию в текущем каталоге) |
| -fprofile-generate-parallel[=<path>] | Инструментировать код программы, использующей распараллеливание, для получения профиля в каталоге <path> (по умолчанию в текущем каталоге) |
| -fprofile-generate-kernel | Инструментировать код программы для получения профиля при сборке ядра |
| -fprofile-dir=<path> | Использовать каталог <path> для файлов профиля |
| -fprofile-subst=<old_name1>:<new_name1>,... | Заменить имя считанного из профиля файла <old_name> на <new_name> |
| -fprofile-values | Включить режим профилирования значений переменных |
| -fprofile-partial-training | Учитывать неполноту профильной информации в режиме -fprofile-use |
| -fprofile-correction | Корректировать рассогласованные счётчики профильной информации в режиме -fprofile-use |
| -fprofile-skip-proc=<proc1,proc2,...> | Запретить инструментировать и загружать профиль для указанных функций |
| -fprofile-skip-module=<module1,module2,...> | Запретить инструментировать и загружать профиль для указанных исходных файлов |
| -fprofile-filter-files=<regex1;regex2;...> | Инструментировать только файлы, указанные в шаблонах |
| -fprofile-exclude-files=<regex1;regex2;...> | Запретить инструментировать файлы, указанные в шаблонах |
| -pg | Инструментировать код программы для получения профиля для дальнейшего его использования программой gprof |
| -fprofile-arcs | Создавать в процессе компиляции файлы с информацией о дугах для программы gcov |
| -ftest-coverage | Создавать в процессе компиляции файлы с информацией о базовых блоках для программы gcov |
| --coverage | Эквивалентно комбинации опций -fprofile-arcs, -ftest-coverage |
| Опции режима "вся программа" |
| -fwhole | Включить режим компиляции "вся программа" |
| -fwhole-shared | Если подана опция -fPIC или -shared, то эквивалентно -fwhole, иначе игнорируется |
| Опции поддержки динамической оптимизации |
| -fdo-prepare | Включить режим подготовки к динамической оптимизации |
| -fdo-prog=<file> | Задать бинарный файл, содержащий секцию с сохранённым EIR |
| -fdo-proc=<proc> | Задать функцию для оптимизации |
| -fdo-prof=<file> | Задать файл с динамическим профилем |
| -fdo-softprof | Включить программное профилирование |
| Опции выдачи отчёта о применившихся оптимизациях |
| -fopt-report | Включить выдачу отчёта о применившихся оптимизациях |
| -fopt-report=<N> | Задать уровень детализации отчёта о применившихся оптимизациях [0-5] |
| -fopt-report-file=<file> | Направить выдачу отчёта о применившихся оптимизациях в файл <file> |
| -fopt-report-append | Добавлять выдачу отчёта в конец файла, не перезатирая его содержимое |
| -fopt-report-dir=<dir> | Сохранять отчёты о применившихся оптимизациях в каталоге <dir> |
| -fopt-report-phase=<phase1,phase2,...> | Указать оптимизации, для которых выводится отчёт |
| -fopt-report-routine=<name1,name2,...> | Указать функции, для которых выводится отчёт |
| -fopt-report-help | Напечатать список всех оптимизаций, для которых возможна генерация отчёта |
| -fopt-report-asm | Печатать отчет в ассемблерный код |
| Опции пиковой производительности |
| -fno-loop-jam | Отключить оптимизацию Loop Jam (fusion) - слияние независимых смежных циклов с одинаковым количеством итераций |
| -fno-swp-ext | Отключить программную конвейеризацию циклов (SoftWare Pipeline) |
| -funsafe-swp-ext | Разрешить SoftWare Pipeline для циклов с вызовами,которые могут не возвращать управление |
| -fno-sr | Отключить оптимизацию Scalar Replacement - сбор межитерационных общих подвыражений |
| -fno-loop-ivrm | Отключить удаление избыточных индуктивных переменных |
| -fno-loop-float-ivrm | Отключить удаление избыточных вещественных индуктивных переменных |
| -fno-vect | Отключить автоматическую векторизацию вычислений |
| -fno-tree-loop-vectorize | Эквивалентно -fno-vect |
| -fsafe-vect | Использовать безопасный способ векторизации невыровненных чтений |
| -fno-maw | Отключить оптимизацию Memory Access Widening |
| -fno-bit-maw | Отключить оптимизацию Bit Memory Access Widening - объединение обращений к битовым полям структур |
| -fno-global-sched | Отключить оптимизацию Global Scheduling - глобальное планирование |
| -fno-loop-unroll | Отключить оптимизацию Loop Unroll - раскрутка цикла |
| -floop-unroll-and-jam (-fno-loop-unroll-and-jam) | Включить оптимизацию Loop Unroll and Jam - раскрутка охватывающего цикла с последующим слиянием копий вложенного цикла |
| -fno-loop-part-unroll | Отключить оптимизацию Loop Partial Unroll - частичная раскрутка цикла |
| -fno-loop-reroll | Отключить оптимизацию Loop Reroll - скрутка цикла |
| -floop-reverse (-fno-loop-reverse) | Включить оптимизацию Loop Reverse - разворот цикла |
| -fno-loop-nesting | Отключить оптимизацию Loop Nesting - вынос маловероятных участков из цикла с созданием охватывающего цикла |
| -floop-nesting-prof-trust=<n> | Задать степень доверия профильной информации для оптимизации Loop Nesting [0;100] |
| -floop-peeling (-fno-loop-peeling) | Включить оптимизацию Loop Peeling - вынос вверх первых итераций малоитерационного цикла |
| -floop-full-peeling (-fno-loop-full-peeling) | Включить оптимизацию Loop Full Peeling - преобразование цикла в скалярный код |
| -funswitch-loops (-fno-unswitch-loops) | Включить вынесение инвариантных условий из цикла с созданием двух версий исходного цикла на ветках вынесенного ветвления |
| -fno-loop-clustering | Отключить оптимизацию Loop Clustering - перенос вычислений, находящихся в цикле под неинвариантным условием, в дополнительный цикл |
| -fno-loop-permute | Отключить оптимизацию Loop Permute - перестановка циклов в гнезде по уровню вложенности |
| -fno-loop-invup | Отключить оптимизацию Loop Invariant Code Motion - вынос инвариантных вычислений из цикла |
| -fno-loop-utos | Отключить преобразование беззнаковых счетчиков циклов в знаковые |
| -fno-loop-asr | Отключить оптимизацию Advanced Scalar Replacement - вынос переменных из циклов |
| -fgcse (-fno-gcse) | Включить оптимизации Global Common Subexpression Elimination - глобальный сбор общих подвыражений, и Global Copy Propagation - глобальная пропагация значений переменных |
| -fno-rtmd | Отключить оптимизацию Loop Run-Time Memory Disambiguation - динамический разрыв зависимостей по памяти в цикле |
| -fno-srtmd | Отключить оптимизацию Scalar RTMD - динамический разрыв блоков зависимостей по памяти на линейном участке |
| -fswitch-opt (-fno-switch-opt) | Включить оптимизацию switch'ей |
| -fswitch-opt-ext | Включить расширенную версию оптимизации оператора switch |
| -fvir (-fno-vir) | Включить оптимизацию выноса векторного инварианта |
| -fno-comb-oper | Отключить генерацию комбинированных операций |
| -fno-memopt | Отключить оптимизацию расположения массивов в памяти |
| -fno-merge-oper | Отключить генерацию операций merge на поздних фазах компиляции |
| -fgsr (-fno-gsr) | Включить оптимизацию Global Scalar Replacement |
| -fdce-fp (-fno-dce-fp) | Включить оптимизацию Dead Code Elimination для вещественных операций |
| -fint-divide-opt (-fno-int-divide-opt) | Включить оптимизации для целочисленных операций деления и остатка от деления |
| -floop-arracc (-fno-loop-arracc) | Включить применение аппаратной поддержки для оптимизации доступа в память по регулярно изменяющимся адресам (включается при уровне оптимизации -O2 и выше) |
| -fforce-loop-apb | Применять механизм аппаратной подкачки массивов, игнорируя проверки эффективности |
| -fforce-loop-apb=<f> | Применять механизм аппаратной подкачки массивов, игнорируя проверки эффективности, для циклов с количеством итераций больше заданного |
| -fno-loop-apb | Отключить механизм аппаратной подкачки массивов |
| -fno-loop-apb=<f> | Отключить механизм аппаратной подкачки массивов для циклов с количеством итераций меньше заданного |
| -floop-apb-conditional-loads (-fno-loop-apb-conditional-loads) | Включить (выключить) механизм аппаратной подкачки для чтений под условием. В защищённом режиме данная опция игнорируется |
| -floop-apb-align-versioning (-fno-loop-apb-align-versioning) | Включить (выключить) оптимизацию apb_versioning, вставляющую динамические проверки выровненности адресов чтений в наиболее вложенных циклах |
| -floop-apb-packets (-fno-loop-apb-packets) | Включить (выключить) поддержку многократного продвижения "головы" области буфера аппаратной подкачки массивов |
| -faligned-apb (-fno-aligned-apb) | При задействовании механизма аппаратной подкачки массивов считать, что все чтения из памяти в наиболее вложенных циклах выровнены на свой формат. По умолчанию включен режим -fno-aligned-apb |
| -fno-cfetch | Отключить генерацию предварительной подкачки кода |
| -fguess-prefetch=<n> | Задать эвристику нерегулярной предварительной подкачки данных [1..10] |
| -flist-prefetch | Включить предварительную подкачку списков |
| -fno-dam | Отключить DAM - аппаратный механизм разрешения конфликтов по чтению-записи |
| -fno-swp-dam | Отключить DAM для конвейеризованных циклов |
| -fswp-dam-cc(-fno-swp-dam-cc) | Включить (выключить) построение компенсирующего кода при применении DAM в конвейеризованных циклах |
| -fno-dam-call | Отключить DAM для зависимостей чтение-вызов |
| -fdam-eq-arrays | Разрешить DAM рвать зависимости между операциями, обращающимися к одному массиву (т.е. по одному указателю или с одним объектом) |
| -fdam-no-short-cc | Запретить DAM строить короткий компенсирующий код |
| -fno-swp | Отключить конвейеризацию циклов с аппаратной поддержкой |
| -fswp-prefetch | Включить программную предподкачку данных для конвейеризованных циклов |
| -fswp-regs-priority | Включить режим экономии регистров при конвейеризации циклов за счет возможного снижения эффективности кэша 2 уровня |
| -fswp-maxopers=<n> | Задать эвристику для конвейеризации циклов - максимальное количество операций в конвейеризуемом цикле [20..2000] |
| -fswp-threshold=<f> | Задать эвристику для конвейеризации циклов - минимальное количество итераций по профилю в конвейеризуемом цикле |
| -fcache-opt (-fno-cache-opt) | Включить режим планирования конвейеризованных циклов с учетом возможных блокировок от неиндуктивных операций чтения |
| -fcache-opt-l2 | Включить режим планирования конвейеризованных циклов с одновременным учетом возможных блокировок от неиндуктивных операций чтения |
| -fcache-opt-grow=<f> | Задать максимально допустимое увеличение II цикла при применениии кэш-оптимизации [1.0-2.0] |
| -fcache-opt-step=<n> | Задать шаг уменьшения задержки от операций чтения в режиме -fcache-opt [0..100] |
| -fswp-cond-cc (-fno-swp-cond-cc) | Включить конвейеризацию циклов с двумя обратными дугами |
| -fforce-swp | Включить принудительную конвейеризацию циклов |
| -fibranch-bound=<f> | Задать порог неподготавливаемых переходов [0.0-1.0], по умолчанию 0.001 |
| -fnesting-prob=<f> | Задать пороговое отношение счетчиков между выкидываемым узлом и головой цикла [0.0-1.0] |
| -fno-dbl-mode | Не использовать dbl флаг операции setwd |
| -ffinite-state-machine-transform (-fno-finite-state-machine-transform) | Включить оптимизацию машин состояний, заданных конструкцией switch |
| -fnon-std-greg-api | Запретить оптимизирующие преобразования, полагающиеся на стандартное API для глобальных регистров |
| -fglobal-regs | Включить использование глобальных регистров |
| -fuse-regs-part=<f> | Задать коэффициент количества регистров, доступных распределителю регистров [0.1-1.0] |
| -fuse-gregs-part=<f> | Задать коэффициент количества глобальных регистров, доступных распределителю регистров [0.1-1.0] |
| -fuse-wregs-part=<f> | Задать коэффициент количества оконных регистров, (небазированные +базированные), доступных распределителю регистров [0.1-1.0] |
| -fuse-pregs-part=<f> | Задать коэффициент количества предикатных регистров, доступных распределителю регистров [0.1-1.0] |
| -fprefetch (-fno-prefetch) | Включить программную предподкачку данных для неконвейеризованных циклов |
| -fset-ld-delay=<n> | Задать задержку для операций чтения из памяти |
| -fset-st-ld-delay=<n> | Задать задержку от операций записи в память к операциям чтения из памяти |
| -fset-mau-delay=<n> | Задать время в тактах микропроцессора, необходимое на подкачку данных из оперативной памяти в кэш L2 |
| -fset-idiv-delay=<n> | Задать задержку для операций целочисленного деления [11-20] |
| -fblock-size-limit=<n> | Установить ограничение на максимальный размер линейного участка (по умолчанию 290 операций) [8-65535] |
| -fipo-globals2regs[=n] | Разрешить использование глобальных регистров для хранения глобальных переменных |
| -finline-level=<f> | Задать эвристику для подстановки функций - коэффициент увеличения интенсивности подстановки [0.1-20.0] |
| -finline-scale=<f> | Задать эвристику для подстановки функций - коэффициент увеличения основных ресурсных ограничений [0.1-5.0] |
| -finline-scale-code-size-limit=<f> | Задать эвристику для подстановки функций - коэффициент увеличения ограничения на рост размера кода [0.1-5.0] |
| -finline-part-size=<n> | Задать эвристику для подстановки функций - максимальный размер вероятного региона процедуры для частичной подстановки |
| -fforce-inline | Включить безусловную подстановку функций со спецификатором inline |
| -finline-only-native | Выполнять подстановку только для функций с явным модификатором inline |
| -fsr-ext | Включить расширенную версию оптимизации Scalar Replacement - сбор межитерационных общих подвыражений |
| -fOsize-selective | Понизить уровень оптимизации для процедур, некритичных по профилю задачи |
| -fOsize-selective=<f> | Понизить уровень оптимизации для функций, некритичных по профилю, с заданием порога срабатывания |
| -fstruct-unite (-fno-struct-unite) | Включить объединение структур одного типа |
| -fstruct-decomp (-fno-struct-decomp) | Включить декомпозицию локальных структур на отдельные поля |
| -fipo-struct-decomp (-fno-ipo-struct-decomp) | Включить межпроцедурную декомпозицию структур на отдельные поля |
| -fstruct-reorg (-fno-struct-reorg) | Включить оптимизации расположения данных в памяти для структур (только в режиме -fwhole) |
| -farray-reorg (-fno-array-reorg) | Включить оптимизации расположения данных в памяти для массивов |
| -fdata-reorg (-fno-data-reorg) | Включить оптимизации расположения данных в памяти (эквивалентно -fstruct-reorg -farray-reorg) |
| -fipo-call-under-cond | Включить оптимизацию Call Under Condition для внесения вызовов pure функций под условие |
| -fipo-cprop-globals | Включить межпроцедурное распространение констант (Constant Propagation) для адресов глобальных объектов |
| -fipo-cprop-cond | Включить межпроцедурное распространение констант (Constant Propagation) для глобальных переменных, которые изменяются под невыполнимым условием |
| -fipo-cprop (-fno-ipo-cprop) | Включить межпроцедурную пропагацию констант (Constant Propagation) |
| -fcprop (-fno-cprop) | Включить попроцедурную пропагацию констант (Constant Propagation) |
| -fipo-dce | Включить межпроцедурную оптимизацию Dead Code Elimination - удаление переменных, в которые есть записи, но нет чтений |
| -fipo-cec (-fno-ipo-cec) | Включить межпроцедурную оптимизацию Carry Early Condition - вынос раннего выхода из функции |
| -fmin-max (-fno-min-max) | Включить распознавание шаблонов минимума и максимума для сокращения длинных цепочек из вложенных макросов |
| -fgcse-calls (-fno-gcse-calls) | Включить удаление повторных вызовов const/pure функций с неизменными аргументами |
| -fcase (-fno-case) | Включить оптимизацию Common Arithmetic Subexpression Elimination - сбор общих арифметических подвыражений |
| -fcse-alt (-fno-cse-alt) | Включить вынос общих подвыражений из альтернатив |
| -fipo-code-split | Разделять код на секции по профилю |
| -fparams-to-locals (-fno-params-to-locals) | Включить перенос на локалы формальных параметров функции, на которые брался адрес |
| -fmain-l2g | Включить преобразование локальных объектов процедуры main в глобальные |
| -fipa-align (-fno-ipa-align) | Включить межпроцедурный анализ выровненности указателей |
| -fipa-ptrs (-fno-ipa-ptrs) | Включить межпроцедурный анализ зависимостей указателей |
| -fipa-pta (-fno-ipa-pta) | Эквивалентно -fipa-ptrs (-fno-ipa-ptrs) |
| -fipa0 | Выключить межпроцедурные анализы указателей и распространение констант |
| -fipa1 | Включить межпроцедурный анализ указателей и оптимизацию Canon Calls |
| -fipa2 | Включить межпроцедурный анализ указателей, оптимизацию Canon Calls, межпроцедурное распространение констант |
| -fmem-functions-subst | Включить оптимизацию вызовов функций memset, memcpy, memmove |
| -fmalloc-opt (-fno-malloc-opt) | Разрешить удалять, перемещать и заменять на выделение стека вызовы функций malloc, free и им подобных |
| -ffast-mem | Разрешить преобразования стандартных функций выделения/освобождения памяти |
| -fstrict-overflow (-fno-strict-overflow) | Разрешить (запретить) оптимизации на основе предположения о невыходе за диапазон целого знакового типа при выполнении операций над знаковыми целыми |
| -fstrict-lc-overflow (-fno-strict-lc-overflow) | Разрешить оптимизации на основе предположенияоб отсутствии переполнения целочисленных индуктивных переменных циклов как знаковых, так и беззнаковых |
| -floop-fusion-late | Отложенное применение оптимизации loop fusion |
| -floop-split-by-cond | Включение оптимизации разбиения цикла условию (отключена по умолчанию) |
| -fforce-delin | Принудительно делинеаризовать массивы C по подобию Фортран 77 |
| -fforce-rtmd | Снять ограничение по коду для оптимизации Run-Time Memory Disambiguation |
| -fforce-split-by-index | Отключить проверки эффективности применения оптимизации расщепления цикла по индексу |
| -fforce-loop-unswitching | Отключить проверки эффективности применения оптимизации вынесения инвариантного условия из цикла с созданием версий цикла |
| -frtmd-aggr | Снять ограничение на максимальное количество обрабатываемых пар для оптимизации Run-Time Memory Disambiguation |
| -fforce-unroll=<n> | Включить принудительную раскрутку всех циклов [1-8] |
| -funroll-scale=<f> | Коэффициент увеличения основных ресурсных ограничений Loop Unroll [0.1-8.0] |
| -fforce-vect | Включить принудительную векторизацию циклов |
| -fforce-alignopt | Включить принудительное выравнивание операций обращения к памяти в циклах |
| -ffinite-loops (-fno-finite-loops) | Разрешить (запретить) удалять пустые циклы без побочных эффектов, у которых все выходы выполняются по инвариантному неконстантному условию, считая, что они не бесконечные |
| -fno-ipo-const | Отключить межпроцедурную пропагацию констант и клонирование |
| -fno-ipo-cloning | Отключить клонирование процедур |
| -fptr-func-spec=<n> | Задать количество вариантов вызова функций по имени при замене вызова по указателю [1-10] |
| -fmax-iter-for-ovlpeel=<n> | Максимальное количество итераций цикла, при котором возможна открутка пролога в ковейеризованном цикле |
| -frestrict-disable=<proc1,proc2,...> | Игнорировать модификаторы restrict для заданных процедур |
| -frestrict-params | Параметры функций типа указатель трактовать как с модификатором restrict |
| -frestrict-locals | Локальные переменные типа указатель трактовать как с модификатором restrict |
| -frestrict-all | Эквивалентно -frestrict-params -frestrict-locals |
| -frestrict-safe | Включить более консервативный анализ зависимостей для restrict-указателей |
| -frestrict-unsafe | Включить более агрессивный анализ зависимостей для restrict-указателей |
| -frestrict-cross-iter | Разрешить рвать межитерационные зависимости для restrict-указателей, объявленных внутри цикла |
| -fno-strength-reduce | Запретить оптимизацию понижения силы операций |
| -fvect-verbose | Включить печать параллелизма операций |
| -fovl-verbose | Включить печать о результатах планирования конвейеризованных циклов |
| -fzero-strides (-fno-zero-strides) | Учитывать (не учитывать) при анализе цикловых зависимостей, что шаг адреса операции обращения в память может быть нулевым |
| -floop-st-dcache-mode=<s> | Установить режим отключения кэширования записей в циклах [nocache_wc|nocache_wc_force] |
| -fno-ipo-array-padding | Отключить оптимизацию Array Padding - относительное расположение статических массивов для оптимизации работы кэш-памяти |
| -fral-esb-factor=<f> | Задать пороговое значение вероятности исполнения линейного участка для проведения дополнительных оптимизаций распределения регистров [0.0-1.0] |
| -flcv (-fno-lcv) | Включить (отключить) Loop Counter Versioning |
| -fcanon-calls (-fno-canon-calls) | Включить (отключить) Canon Calls: замену передачи параметров функции по указателю на передачу по значению |
| -fignore-getenv-call | Игнорировать вызовы getenv(name), всегда возвращая нулевой указатель на информацию об окружении, ассоциированную со строкой name |
| -fnesting-ext | Включить оптимизацию расчистки цикловых регионов за счёт выноса из циклов маловероятных вычислений после набора регионов |
| Опции, которые могут приводить к неточным преобразованиям |
| -ffast | Разрешить преобразования с вещественной арифметикой и некоторые потенциально опасные оптимизации |
| -fassociative-math (-fno-associative-math) | Разрешить (запретить) менять местами аргументы в цепочках вещественных операций |
| -fmath-errno (-fno-math-errno) | При замене вызова математической функции на встроенную реализацию учитывать (не учитывать) её спецификацию по работе с errno |
| -funsafe-math-optimizations (-fno-unsafe-math-optimizations) | Разрешить (запретить) преобразования с вещественной арифметикой, приводящие к возможному изменению точности |
| -ffast-math (-fno-fast-math) | Разрешить (запретить) преобразования с вещественной арифметикой, приводящие к возможному изменению точности |
| -ffinite-math-only (-fno-finite-math-only) | Разрешить (запретить) оптимизации, предполагающие, что не будет работы с NaN'ами и Inf'ами |
| -fsignaling-nans (-fno-signaling-nans) | Запретить (разрешить) оптимизации, предполагающие, что вещественные особые ситуации типа деления на 0 можно игнорировать |
| -frounding-math (-fno-rounding-math) | Запретить (разрешить) преобразования и оптимизации, предполагающие использование режима округления по-умолчанию |
| -fsigned-zeros (-fno-signed-zeros) | При оптимизациях учитывать (не учитывать) различия между +0.0 и -0.0 |
| -fno-safe-call-params | Запретить оптимизации, предполагающие, что параметром функции не может быть неинициализированная переменная |
| -fcx-limited-range (-fno-cx-limited-range) | Разрешить (запретить) упрощённое построение операций комплексного умножения и деления |
| -fcx-fortran-rules (-fno-cx-fortran-rules) | Разрешить (запретить) упрощённое построение операций комплексного умножения и деления по правилам языка Фортран |
| -fexcess-precision=fast | Эквивалентно -fassociative-math -fno-rounding-math |
| -fexcess-precision=standard | Эквивалентно -fno-associative-math -frounding-math |
| -ffp-contract=style | -ffp-contract=off отключает использование вычислений без промежуточного округления. -ffp-contract=fast включает использование вычислений без промежуточного округления, если целевая архитектура поддерживает операции, выполняющие такие вычисления. -ffp-contract=on включает использование вычислений без промежуточного округления, если это разрешено стандартом языка; в настоящее время данное значение опции не поддержано и интерпретируется как -ffp-contract=off. По умолчанию -ffp-contract=off |
| -fmath-func-vect (-fno-math-func-vect) | Включить замену скалярных математических функций в циклах на соответствующие векторные |
| -freplace-math-functions (-fno-replace-math-functions) | Включить замену математических функций |
| -freplace-math-function=<f1,f2,..> | Включить замену указанных математических функций при выключенной замене в общем случае |
| -fno-replace-math-function=<f1,f2,..> | Запретить замену указанных математических функций при включенной замене в общем случае |
| Опции работы с sanitizer'ами |
| -fsanitize=<san1,san2,...> (-fno-sanitize=<san1,san2,...>) | Включить (выключить) sanitizer'ы <san1>, <san2>, ... |
| -fsanitize-recover=<san1,san2,...> (-fno-sanitize-recover=<san1,san2,...>) | Включить (выключить) режим работы без падения на обнаруженных ошибках для sanitizer'ов <san1>, <san2>, ... |
| Дополнительные опции AddressSanitizer |
| -fno-asan-globals (-fasan-globals) | Выключить инструментирование глобалов |
| -fno-asan-reads (-fasan-reads) | Выключить инструментирование чтений из памяти |
| -fno-asan-writes (-fasan-writes) | Выключить инструментирование записей в память |
| -fno-asan-stack (-fasan-stack) | Выключить инструментирование стека |
| -fno-asan-dynamic-stack (-fasan-dynamic-stack) | Выключить инструментирование VLA и alloca |
| -fasan-shadow-offset= (-fasan-shadow-offset=) | Задать смещение адреса теневой памяти для санитайзера |
| -fno-sanitize-address-use-after-scope (-fsanitize-address-use-after-scope) | Выключить механизм детектирования обращения к автоматическим переменным после выхода из области видимости |
| -fno-sanitize-address-use-after-return (-fsanitize-address-use-after-return) | Выключить механизм детектирования обращения к данным в стеке процедуры после выхода из неё |
| Дополнительные опции MemorySanitizer |
| -fsanitize-memory-track-origins (-fno-sanitize-memory-track-origins) | Включить слежение за аллокацией адресов памяти, которая содержит неинициализированные данные |
| -fsanitize-memory-track-origins=<level> | Включить слежение за аллокацией адресов памяти, которая содержит неинициализированные данные. Значение <level> задает уровень детализации отчета |
| Дополнительные опции OptimizeSanitizer |
| -fosan-report-dir=<dir> | Указать директорию <dir> для выдачи отчётов об оптимизациях |
| -fosan-analyze=<optlist> | Выбрать оптимизацию для инструментирования {inline, loops} |
| Расширенные опции управления процессом компиляции |
| -B<prefix> (-B <prefix>) | Добавить префикс поиска исполняемых компонент, заголовочных файлов, библиотек и crt-модулей |
| -Wa,<opt1>,<opt2>... | Передать опции <opt1> <opt2> ... напрямую ассемблеру |
| -Wc,<opt1>,<opt2>... | Передать опции <opt1> <opt2> ... напрямую компилятору |
| -Wl,<opt1>,<opt2>... | Передать опции <opt1> <opt2> ... напрямую линкеру и трактовать их как файлы |
| -Wl2,<opt1>,<opt2>... | Передать опции <opt1> <opt2> ... напрямую линкеру в конец строки (актуально для стадии линковки режима -fwhole) |
| -Wp,<opt1>,<opt2>... | Передать опции <opt1> <opt2> ... напрямую препроцессору |
| -Xlinker <opt1>,<opt2>... | Эквивалентно опции -Wl,<opt1>,<opt2>... |
| -x<lang> (-x <lang>) | Считать, что последующие файлы содержат исходный код на языке <lang> |
| @<file> | Прочитать опции из файла <file> |
| Опции управления линковкой |
| -static (-dynamic) | Использовать статическую (динамическую) линковку |
| -L<dir> (-L <dir>) | Добавить <dir> к списку директорий для поиска библиотек |
| -l<name> (-l <name>) | Линковать с библиотекой <name> |
| -nodefaultlibs | Не линковать с библиотеками по умолчанию |
| -nostartfiles | Не линковать со стартовыми модулями по умолчанию |
| -nostdlib | Эквивалентно комбинации опций -nodefaultlibs и -nostartfiles |
| -pie (-no-pie) | Линковать до позиционно-независимого исполняемого файла |
| -static-pie | Линковать до статически слинкованного позиционно-независимого исполняемого файла |
| -r | Создать relocatable object |
| -rdynamic | Вывести все символы в динамическую таблицу символов |
| -shared | Создать динамическую библиотеку |
| -shared-libgcc | Принудительно использовать динамическую версию libgcc |
| -static-libgcc | Принудительно использовать статическую версию libgcc |
| -static-libstdc++ | Принудительно использовать статическую версию libstdc++ |
| -static-libgfortran | Принудительно использовать статическую версию libgfortran |
| -shared-libasan | Использовать динамическую версию libasan |
| -static-libasan | Использовать статическую версию libasan |
| -symbolic | Передать в линкер опцию -Bsymbolic |
| Опции передаются линкеру |
| -e<entry> (-e <entry>) | |
| -h<soname> (-h <soname>) | |
| -R<path> (-R <path>) | |
| -s | |
| -T<script> (-T <script>) | |
| -u<symname> (-u <symname>) | |
| -z<keyword> (-z <keyword>) | |
| Опции печати и настройки конфигурации |
| --version | Печатать версию компилятора |
| -dumpmachine | Печатать название целевой машины |
| -dumpversion | Печатать версию gcc, с которой совместим данный компилятор |
| -print-multiarch | Печатать название целевой режима |
| -print-file-name=<lib> | Печатать путь до указанного неисполняемого файла |
| -print-prog-name=<prog> | Печатать путь до указанного исполняемого файла |
| -print-search-dirs | Печатать пути поиска |
| -print-libgcc-file-name | Печатать путь до libgcc.a |
| -print-version | Печатать версию компилятора |
| -set-target-build <target-build> | Эмулировать конфигурацию <target-build> в части работы с внутренним каталогом |
| -print-home-dir | Печатать домашний каталог компилятора |
| -set-home-dir <dir> | Установить домашний каталог компилятора |
| -print-binutils-dir | Печатать путь до корня файловой системы, в которой ведётся поиск binutils |
| -set-binutils-dir <dir> | Установить путь до корня файловой системы, в которой ведётся поиск binutils |
| --sysroot <dir> (--sysroot=<dir>) | Установить путь до корня файловой системы, в которой ведётся поиск системных библиотек в момент компиляции и дополнительно передать опцию --sysroot=<dir> линкеру. Файловая система должна быть эквивалентна той, что установлена на машине в момент исполнения кода |
| -print-sysroot | Печатать путь до корня файловой системы, в которой ведётся поиск системных библиотек в момент компиляции |
| -isysroot <dir> (-isysroot=<dir>) | Эквивалентно --sysroot <dir>, но только в объёме поиска include-файлов |
| -print-config | Эквивалентно -print-config=all |
| -print-config=<name> | Напечатать значение текущего конфигурационного параметра <name> |
| -print-mode | Эквивалентно -print-mode=all |
| -print-mode=<name> | Напечатать значение текущего режимного параметра <name> |
| -print-internal-dir | Эквивалентно -print-internal-dir=all |
| -print-internal-dir=<name> | Напечатать значение текущего внутреннего каталога <name> |
| -print-recognized-environment | Печатать установленные переменные окружения, влияющие на работу компилятора |
| Опции stack-protector'a |
| -fstack-protector (-fno-stack-protector) | Включить защиту стека от переполнения |
| -fstack-protector-all (-fno-stack-protector-all) | |
| -fstack-protector-explicit (-fno-stack-protector-explicit) | |
| -fstack-protector-strong (-fno-stack-protector-strong) | |
| Опции для повторения внутренних свойств gcc |
| -ftext-switch-table | Таблицу переходов switch'а помещать в секцию .text |
| -fcopy-aggregate-memcpy[=<size>] | При агрегатном копировании [размером не менее <size> байт] вместо цикла использовать вызов функции memcpy |
| Опции для имитации поведения gcc под x86 |
| -mmmx | Включить предопределённый макрос __MMX__ |
| -mno-mmx | Выключить предопределённый макрос __MMX__, взвести опцию -mno-3dnow |
| -msse | Включить предопределённый макрос __SSE__ |
| -mno-sse | Выключить предопределённый макрос __SSE__, взвести опцию -mno-sse2 |
| -msse2 | Включить предопределённый макрос __SSE2__, взвести опцию -msse |
| -mno-sse2 | Выключить предопределённый макрос __SSE2__, взвести опцию -mno-sse3 |
| -msse3 | Включить предопределённый макрос __SSE3__, взвести опцию -msse2 |
| -mno-sse3 | Выключить предопределённый макрос __SSE3__, взвести опции -mno-ssse3, -mno-sse4a |
| -mssse3 | Включить предопределённый макрос __SSSE3__, взвести опцию -msse3 |
| -mno-ssse3 | Выключить предопределённый макрос __SSSE3__, взвести опцию -mno-sse4.1 |
| -msse4.1 | Включить предопределённый макрос __SSE4_1__, взвести опцию -mssse3 |
| -mno-sse4.1 | Выключить предопределённый макрос __SSE4_1__, взвести опцию -mno-sse4.2 |
| -msse4.2 | Включить предопределённый макрос __SSE4_2__, взвести опциию -msse4.1 |
| -mno-sse4.2 | Выключить предопределённый макрос __SSE4_2__, взвести опциию -mno-avx |
| -msse4 | Эквивалентно -msse4.2 |
| -mno-sse4 | Эквивалентно -mno-sse4.1 |
| -mavx | Включить предопределённый макрос __AVX__, взвести опцию -msse4.2 |
| -mno-avx | Выключить предопределённый макрос __AVX__, взвести опции -mno-fma, -mno-fma4, -mno-f16c, -mno-avx2 |
| -m3dnow | Включить предопределённый макрос __3dNOW__, взвести опцию -mmmx |
| -mno-3dnow | Выключить предопределённый макрос __3dNOW__, взвести опцию -mno-3dnowa |
| -m3dnowa | Включить предопределённый макрос __3dNOW_A__, взвести опцию -m3dnow |
| -mno-3dnowa | Выключить предопределённый макрос __3dNOW_A__ |
| -msse4a | Включить предопределённый макрос __SSE4A__, взвести опцию -msse3 |
| -mno-sse4a | Выключить предопределённый макрос __SSE4A__, взвести опцию -mno-fma4 |
| -mfma4 | Включить предопределённый макрос __FMA4__, взвести опции -msse4a, -mavx |
| -mno-fma4 | Выключить предопределённый макрос __FMA4__, взвести опцию -mno-xop |
| -mxop | Включить предопределённый макрос __XOP__, взвести опцию -mfma4 |
| -mno-xop | Выключить предопределённый макрос __XOP__ |
| -maes | Включить предопределённый макрос __AES__, взвести опцию -msse2 |
| -mno-aes | Выключить предопределённый макрос __AES__ |
| -mpclmul | Включить предопределённый макрос __PCLMUL__, взвести опцию -msse2 |
| -mno-pclmul | Выключить предопределённый макрос __PCLMUL__ |
| -mrdrnd | Включить предопределённый макрос __RDRND__ |
| -mno-rdrnd | Выключить предопределённый макрос __RDRND__ |
| -mbmi | Включить предопределённый макрос __BMI__ |
| -mno-bmi | Выключить предопределённый макрос __BMI__ |
| -mtbm | Включить предопределённый макрос __TBM__ |
| -mno-tbm | Выключить предопределённый макрос __TBM__ |
| -mabm | Включить предопределённый макрос __ABM__, взвести опцию -mpopcnt |
| -mno-abm | Выключить предопределённый макрос __ABM__ |
| -mf16c | Включить предопределённый макрос __F16C__, взвести опцию -mavx |
| -mno-f16c | Выключить предопределённый макрос __F16C__ |
| -mpopcnt | Включить предопределённый макрос __POPCNT__ |
| -mno-popcnt | Выключить предопределённый макрос __POPCNT__ |
| -mrdseed | Включить предопределённый макрос __RDSEED__ |
| -mno-rdseed | Выключить предопределённый макрос __RDSEED__ |
| -mlzcnt | Включить предопределённый макрос __LZCNT__ |
| -mno-lzcnt | Выключить предопределённый макрос __LZCNT__ |
| -mmwaitx | Включить предопределённый макрос __MWAITX__ |
| -mno-mwaitx | Выключить предопределённый макрос __MWAITX__ |
| -mclzero | Включить предопределённый макрос __CLZERO__ |
| -mno-clzero | Выключить предопределённый макрос __CLZERO__ |
| -mclflushopt | Включить предопределённый макрос __CLFLUSHOPT__ |
| -mno-clflushopt | Выключить предопределённый макрос __CLFLUSHOPT__ |
| -mclwb | Включить предопределённый макрос __CLWB__ |
| -mno-clwb | Выключить предопределённый макрос __CLWB__ |
| -mbmi2 | Включить предопределённый макрос __BMI2__ |
| -mno-bmi2 | Выключить предопределённый макрос __BMI2__ |
| -mfma | Включить предопределённый макрос __FMA__, взвести опцию -mavx |
| -mno-fma | Выключить предопределённый макрос __FMA__ |
| -mavx2 | Включить предопределённый макрос __AVX2__, взвести опцию -mavx |
| -mno-avx2 | Выключить предопределённый макрос __AVX2__ |
| -msha | Включить предопределённый макрос __SHA__, взвести опцию -msse2 |
| -mno-sha | Выключить предопределённый макрос __SHA__ |
| -mavxvnni | Включить предопределённый макрос __AVXVNNI__, взвести опцию -mavx2 |
| -mno-avxvnni | Выключить предопределённый макрос __AVXVNNI__ |
| Игнорируемые опции (для совместимости с gcc) |
| -F <dir> (-F<dir>) | |
| -faggressive-loop-optimizations (-fno-aggressive-loop-optimizations) | |
| -falign-labels (-fno-align-labels) | |
| -falign-labels=<val> | |
| -fanalyzer (-fno-analyzer) | |
| -fasm (-fno-asm) | |
| -fbranch-count-reg | |
| -fbuilding-libgcc | |
| -fcse-follow-jumps (-fno-cse-follow-jumps) | |
| -fcse-skip-blocks (-fno-cse-skip-blocks) | |
| -fcheck-new (-fno-check-new) | |
| -fcode-hoisting (-fno-code-hoisting) | |
| -fconserve-stack (-fno-conserve-stack) | |
| -fdebug-prefix-map=<old>=<new> | |
| -fdefer-pop (-fno-defer-pop) | |
| -fdevirtualize-at-ltrans (-fno-devirtualize-at-ltrans) | |
| -fdiagnostics-show-location=<val> | |
| -fdiagnostics-show-option (-fno-diagnostics-show-option) | |
| -fdollars-in-identifiers (-fno-dollars-in-identifiers) | |
| -fdwarf2-indirect-strings (-fno-dwarf2-indirect-strings) | |
| -felide-constructors | |
| -feliminate-unused-debug-symbols (-fno-eliminate-unused-debug-symbols) | |
| -feliminate-unused-debug-types (-fno-eliminate-unused-debug-types) | |
| -femit-struct-debug-baseonly (-fno-emit-struct-debug-baseonly) | |
| -femit-struct-debug-reduced (-fno-emit-struct-debug-reduced) | |
| -femit-struct-debug-detailed=<list> (-fno-emit-struct-debug-detailed=<list>) | |
| -fenforce-eh-specs (-fno-enforce-eh-specs) | |
| -fexpensive-optimizations (-fno-expensive-optimizations) | |
| -ffat-lto-objects (-fno-fat-lto-objects) | |
| -ffile-prefix-map=<old>=<new> | |
| -ffloat-store (-fno-float-store) | |
| -fforce-addr | |
| -fforce-mem | |
| -fimplement-inlines (-fno-implement-inlines) | |
| -fimplicit-templates (-fno-implicit-templates) | |
| -fimplicit-inline-templates (-fno-implicit-inline-templates) | |
| -finline-limit-<num> (-finline-limit=<num>) | |
| -finline-small-functions (-fno-inline-small-functions) | |
| -fipa-sra (-fno-ipa-sra) | |
| -fkeep-inline-functions (-fno-keep-inline-functions) | |
| -flifetime-dse (-fno-lifetime-dse) | |
| -flifetime-dse=<val> | |
| -flto (-fno-lto) | |
| -flto=<n> | |
| -flto-compression-level=<n> | |
| -flto-partition=<alg> | |
| -flto-report (-fno-lto-report) | |
| -flto-report-wpa (-fno-lto-report-wpa) | |
| -fmacro-prefix-map=<old>=<new> | |
| -fmerge-all-constants (-fno-merge-all-constants) | |
| -fms-extensions (-fno-ms-extensions) | |
| -fnon-call-exceptions (-fno-non-call-exceptions) | |
| -foffload=disable | |
| -fomit-frame-pointer (-fno-omit-frame-pointer) | |
| -foptimize-register-move (-fno-optimize-register-move) | |
| -foptimize-sibling-calls | |
| -fpch-deps | |
| -fprefetch-loop-arrays (-fno-prefetch-loop-arrays) | |
| -fpreprocessed | |
| -frandom-seed=<string> | |
| -freciprocal-math (-fno-reciprocal-math) | |
| -fregmove (-fno-regmove) | |
| -frename-registers (-fno-rename-registers) | |
| -freorder-blocks (-fno-reorder-blocks) | |
| -frerun-cse-after-loop (-fno-rerun-cse-after-loop) | |
| -frerun-loop-opt (-fno-rerun-loop-opt) | |
| -fschedule-insns (-fno-schedule-insns) | |
| -fschedule-insns2 (-fno-schedule-insns2) | |
| -fsecond-underscore (-fno-second-underscore) | |
| -fshow-column (-fno-show-column) | |
| -fsingle-precision-constant (-fno-single-precision-constant) | |
| -fstack-check (-fno-stack-check) | |
| -fstack-clash-protection (-fno-stack-clash-protection) | |
| -fstdarg-opt (-fno-stdarg-opt) | |
| -fstrict-enums (-fno-strict-enums) | |
| -fsync-libcalls (-fno-sync-libcalls) | |
| -fthread-jumps (-fno-thread-jumps) | |
| -fthreadsafe-statics (-fno-threadsafe-statics) | |
| -ftoplevel-reorder (-fno-toplevel-reorder) | |
| -ftrapping-math (-fno-trapping-math) | |
| -ftree-ccp (-fno-tree-ccp) | |
| -ftree-copyrename (-fno-tree-copyrename) | |
| -ftree-copy-prop (-fno-tree-copy-prop) | |
| -ftree-dominator-opts (-fno-tree-dominator-opts) | |
| -ftree-fre (-fno-tree-fre) | |
| -ftree-loop-distribute-patterns (-fno-tree-loop-distribute-patterns) | |
| -ftree-loop-im (-fno-tree-loop-im) | |
| -ftree-loop-vectorize | |
| -ftree-pre (-fno-tree-pre) | |
| -ftree-slp-vectorize (-fno-tree-slp-vectorize) | |
| -ftree-ter (-fno-tree-ter) | |
| -ftree-vectorize (-fno-tree-vectorize) | |
| -ftree-vrp (-fno-tree-vrp) | |
| -funit-at-a-time (-fno-unit-at-a-time) | |
| -funroll-loops (-fno-unroll-loops) | |
| -funroll-all-loops (-fno-unroll-all-loops) | |
| -funsafe-loop-optimizations (-fno-unsafe-loop-optimizations) | |
| -fuse-linker-plugin (-fno-use-linker-plugin) | |
| -fvar-tracking (-fno-var-tracking) | |
| -fvar-tracking-assignments (-fno-var-tracking-assignments) | |
| -fweb (-fno-web) | |
| -fno-working-directory | |
| -fwrapv (-fno-wrapv) | |
| -fzero-initialized-in-bss (-fno-zero-initialized-in-bss) | |
| -malign-jumps (-mno-align-jumps) | |
| -malign-jumps=<val> | |
| -mpreferred-stack-boundary=<val> | |
| -mfpmath=<val> | |
| --param <str> (--param=<str>) | |
| -pipe (--pipe) | |
| Игнорируемые опции (для совместимости с прошлыми версиями lcc) |
| -fno-tail-calls | Опция устарела и будет удалена в следующей версии компилятора. Используйте -fno-optimize-sibling-calls |
| -fno-loop-unswitching | Опция устарела и будет удалена в следующей версии компилятора. Используйте -fno-unswitch-loops |
| -finit-locals-zero | Опция устарела и будет удалена в следующей версии компилятора. Используйте -ftrivial-auto-var-init=zero |
| -fprofile-strict-names | Опция устарела и будет удалена в следующей версии компилятора. Используйте -Wmissing-profile (включена по умолчанию) |
| -fno-gcp | Опция устарела и будет удалена в следующей версии компилятора. Используйте -fno-gcse |
| -fno-loop-unroll-jam | Опция устарела и будет удалена в следующей версии компилятора. Используйте -fno-loop-unroll-and-jam |
| -fno-dam4swp | Опция устарела и будет удалена в следующей версии компилятора. Используйте -fno-swp-dam |
| -fdam-no-rbranch | Опция устарела и будет удалена в следующей версии компилятора. Используйте -fdam-no-short-cc |
| --dwarf2-64bit | Опция устарела и будет удалена в следующей версии компилятора. Используйте -gdwarf64 |
| --no-dwarf2-64bit | Опция устарела и будет удалена в следующей версии компилятора. Используйте -gdwarf32 |
| -fautopar | Опция устарела и будет удалена в следующей версии компилятора |
| -fthreads= | Опция устарела и будет удалена в следующей версии компилятора |
| -fpar-numa= | Опция устарела и будет удалена в следующей версии компилятора |
| -fpar-distr-mem= | Опция устарела и будет удалена в следующей версии компилятора |
| --autopar_verbose | Опция устарела и будет удалена в следующей версии компилятора |
| -fext-strict-aliasing | Опция устарела и будет удалена в следующей версии компилятора |
| -fno-ext-strict-aliasing | Опция устарела и будет удалена в следующей версии компилятора |
| Опции поддержки предсказания переходов |
| -mbp (-mno-bp) | Включить простой алгоритм замены подготовленных переходов на неподготовленные с порогами по умолчанию |
| -mbp-t-all=<f> | Включить простой алгоритм замены подготовленных переходов на неподготовленные и задать единый порог для всех типов переходов [0;0.5] |
| -mbp-t-dyn=<f> | Включить простой алгоритм замены подготовленных переходов на неподготовленные и задать порог для динамических переходов [0;0.5] |
| -mbp-t-proc=<f> | Включить простой алгоритм замены подготовленных переходов на неподготовленные и задать порог для статических вызовов и возвратов [0;0.5] |
| -mbp-t-formula | Включить продвинутый алгоритм замены подготовленных переходов на неподготовленные с порогом, зависящим от длины критического пути по формуле с параметрами T0, T1, K |
| -mbp-t-formula-t0=<f> | Задать порог для нулевой задержки T0 [0;0.5) |
| -mbp-t-formula-t1=<f> | Задать порог для бесконечной задержки T1 (0;0.5] |
| -mbp-t-formula-k=<f> | Задать производную в нуле K [0.001;10] |
| -mbp-force-all | Включить безусловную замену всех подготовленных переходов на неподготовленные. Опция игнорируется для Elbrus V3-V6 |
| -mbp-zero-lat-ctp-ct (-mno-bp-zero-lat-ctp-ct) | Считать нулевой задержку от подготовки к переходу при оценочном планировании |
| -mbp-zero-lat-cmp-ct (-mno-bp-zero-lat-cmp-ct) | Установить нулевую задержку от предикатной операции к переходу |
| Поддерживаемые переменные окружения |
| TMPDIR | Настройка каталога для временных файлов |
| CPATH | Дополнительные пути поиска заголовочных файлов |
| C_INCLUDE_PATH | Дополнительные пути поиска заголовочных файлов языка C |
| CPLUS_INCLUDE_PATH | Дополнительные пути поиска заголовочных файлов языка C++ |
| DEPENDENCIES_OUTPUT | Значение должно иметь формат "file[ name]"; то же, что и -MMD -MF file -MT name |
| SUNPRO_DEPENDENCIES | Значение должно иметь формат "file[ name]"; то же, что и -MD -MF file -MT name |
| LIBRARY_PATH | Дополнительные пути поиска библиотек |
| LC_ALL | Определяет язык выдачи сообщений |
| LC_MESSAGES | Определяет язык выдачи сообщений |
| LANG | Определяет язык выдачи сообщений |
| MCST_CFLAGS_FILE | Эквивалетно наличию опции @ в конце командной строки |
| GCC_COLORS | Задаёт настройки цвета для цветовой подсветки сообщений. Пустое значение отключает цветовую подсветку сообщений |
| TERM | Если выставлено в значение "dumb", то отключает цветовую подсветку сообщений |
| MCST_PROF_DIR | Задаёт каталог для сброса/чтения профильной информации. Имеет приоритет над каталогом, заданным опциями -fprofile-generate и -fprofile-use |
| MCST_PROF_DIR_PROG | При установке в значение "1" код, собранный в режиме -fprofile-generate, сбрасывает профильную информацию в каталог исполняемого файла. Имеет приоритет над каталогом, заданным опцией -fprofile-generate |
| MCST_DUMPMACHINE | Задаёт выдачу по опции -dumpmachine |