ОпцияОписание
Опции печати помощи
--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