Опция | Описание
Опции печати помощи
--help | Печатать этот текст
--help-raw | Печатать этот текст в форматированном виде для автоматической обработки
Опции управления процессом компиляции
-c | Компилировать до объектного файла
-S | Компилировать до ассемблерного файла
-o<file> (-o <file>) | Сохранять результат работы в файле <file>
-v (--verbose) | Выводить строки запуска компонент и их verbose-выдачи
-vs | Выводить только строки запуска компонент
-save-temps | Создавать временные файлы в текущей директории и не удалять их
--tempdir <dir> | Установить директорию для временных файлов
-pthread (-pthread) | Подключить потоковые библиотеки и макросы
-ww | Подавлять все предупреждения, не относящиеся к исходному тексту программы
Опции режима компиляции целевой архитектуры
-mtune=<cpu> | Настроить параметры планирования под процессор <cpu>
-mcpu=<cpu> | Формировать код для процессора <cpu>
-m32 | Компилировать в режиме 32 бит
-m64 | Компилировать в режиме 64 бит
-fpermit-unaligned-ldd-std | Разрешить обращения в память размером 8 байт по адресам, выровненным на 4 байта
Опции управления языковыми настройками
-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. Другие директивы игнорируются
Опции управления языковыми настройками 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-leading-underscore | Разрешить использование подчерка в начале идентификатора
-fautomatic (-fno-automatic) | Не разрешать трактовать локальные переменные нерекурсивных процедур как SAVE
-fbackslash | Интерпретировать символ "\" как символ "escape"
-fcray-pointer | Разрешить использование Cray Pointers
-fd-lines-as-code | Игнорировать символ "D" в первой колонке
-fd-lines-as-comments | Интерпретировать символ "D" в первой колонке как знак комментария
-fdec (-fno-dec) | Разрешить синтаксис DEC, включает все опции, которые начинаются на -fdec
-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 по умолчанию
-fdiagnostics-show-caret (-fno-diagnostics-show-caret) | Показывать позиции в строке исходного текста с помощью специального знака
-fdiagnostics-show-location=<val> | Показывать номер строки текста, если диагностическое сообщение содержит несколько строк. Допустимые значения <val>: once, every-line
-fdiagnostics-show-option (-fno-diagnostics-show-option) | Печатать в диагностическом сообщении опцию, в результате действия которой это сообщение появилось
-fdollar-ok | Разрешить символ "$" в идентификаторе в качестве не первого символа
-fno-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-stack-var-size=<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: генерировать специальные цели на случай удаления требуемых файлов
-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 | Добавить имя файла к именам статических переменных и функций
-pg | Генерировать код программы для получения профиля для дальнейшего его использования программой gprof
-fprofile-arcs | Создавать в процессе компиляции файлы с информацией о дугах для программы gcov
-ftest-coverage | Создавать в процессе компиляции файлы с информацией о базовых блоках для программы gcov
--coverage | Эквивалентно комбинации опций -fprofile-arcs, -ftest-coverage
Архитектурно-зависимые опции
-ffixed-<reg> | Запретить использование компилятором регистра <reg>
-fcall-used-<reg> | Отметить регистр <reg> как портящийся при вызовах
-masm-inline (-mno-asm-inline) | Разрешить (запретить) inline-подстановку gnu ассемблерных вставок (только в режиме с оптимизациями)
-mcmodel=<cmodel> | Использовать модель памяти <cmodel>
-mno-fpu (-fpu) | Отключить (включить) генерацию инструкций вещественной арифметики и использовать программные реализации из библиотеки поддержки
-mno-integer-ldd-std (-minteger-ldd-std) | Запретить (разрешить) генерацию операций ldd/std
-mno-app-regs (-mapp-regs) | Запретить (разрешить) использование регистров %g2, %g3, %g4
-mvis (-mno-vis) | Включить (выключить) поддержку vis и режим -mil-inline (-mno-il-inline)
-mv8 | Опция игнорируется (deprecated)
-mno-unaligned-type-atomic | Запретить использование аппаратной поддержки при построении атомарных операций над типами, не имеющими по языку достаточное выравнивание
Опции отладочной информации
-g0 | Отключить генерацию отладочной информации
-g | Генерировать отладочную информацию
-g1, -g2, -g3, -gdwarf-2, -gstabs, -ggdb, -ggdb1, -ggdb2, -ggdb3, -gno-as-loc-support | Эквивалентно опции -g (для совместимости с gcc)
--dwarf2-64bit | При построении отладочной информации в формате DWARF-2 использовать формат "64-bit", являющийся частью формата DWARF-3
-fverbose-asm (-fno-verbose-asm) | Добавить дополнительные отладочные печати в ассемблерный файл
-fident (-fno-ident) | Строить в коде информацию для идентификации компилятора
Дополнительные опции
-fkernel | Задать режим сборки ядра ОС Linux. Подразумевается режим запрета прерываний при обработке системных регистров. Включает опции: -fforce-inline, -fno-global-regs и др
-fforbid-fp | Запретить вещественные операции
-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 | Учесть неполную профильную информацию при подстановке функций
-fno-error-always-inline | Не выдавать ошибку в случае невозможности inline-подстановки функции с атрибутом always_inline
-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) | Включить (выключить) анализ указателей на основе типов
-fext-strict-aliasing (-fno-ext-strict-aliasing) | Включить (выключить) расширенный анализ указателей на основе типов
-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>
-fdevirtualize | Включить преобразование вызовов виртуальных функций в вызовы функций по имени
-fno-tls-opt | Запретить применение оптимизации TLS
-fno-tls-list=<proclist> | Запретить применение оптимизации TLS для указанных процедур
-fasm-entries-first | Конструкции asm entry печатать в начале ассемблерного файла, а не в конце
-fdata-sections (-fno-data-sections) | Размещать каждую глобальную переменную в отдельную секцию
-ffunction-sections (-fno-function-sections) | Размещать каждую функцию в отдельную секцию
-fno-optimize-sibling-calls | Запретить применение оптимизаций Tail Calls и Tail Recursion
-fno-tail-calls | Запретить применение оптимизации Tail Calls
-fdelete-null-pointer-checks (-fno-delete-null-pointer-checks) | Удаление проверок на 0 после обращения к полю объекта
-fno-delete-null-pointer-checks | Запретить удаление проверок на 0 после обращения к полю объекта
-fno-gnu-unique | Запретить построение символов STB_GNU_UNIQUE
-funsafe-struct-to-reg | Разрешить размещение структур на регистрах в защищенном режиме. Не гарантируется корректное поведение программы в случае записи в поле структуры неинициализированнных данных
-ffortran-extern-commons (-fno-fortran-extern-commons) | Сделать фортрановские common'ы видимыми за пределами текущего модуля
-finit-locals-zero | Инициализировать нулём автоматические локальные переменные, кроме массивов
Опции форматирования выдачи компилятора
-fmessage-length=<num> | Задать ограничение в <num> символов на ширину выдаваемых сообщений
-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> ошибок
Опции предупреждений
-Wabi | Игнорируется
-Wabi=2 | Игнорируется
-Waddress | Игнорируется
-Waggregate-return | Игнорируется
-Waliasing | Для языка Фортран предупреждать о возможных совмещениях имён формальных аргументов
-Walign-commons | Для языка Фортран предупреждать о выравниваниях в COMMON блоках
-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, -Wpointer-to-int32-cast-protected, -Wpointer-to-int64-cast-protected, -Wpointer-to-int128-cast-protected, -Wuninitialized, -Wmaybe-uninitialized
-Walloc-size-check | Предупреждать о недопустимом размере выделяемой памяти в модели данных -mdmodel=medium
-Walloc-zero | Игнорируется
-Walloca | Игнорируется
-Wampersand | Для языка Фортран предупреждать об отсутствующем символе "&" в продолжении строковой константы
-Warg-mismatch | Предупреждать о несовместимости типов формальных и фактических параметров в режиме -fwhole
-Wargument-mismatch | Для языка Фортран предупреждать о различии типа или размерности у формальных и фактических аргументов
-Warray-bounds | Предупреждать о выходе за границу массива (начиная с уровня -O2). Кроме случаев, описанных в документации
-Warray-bounds=1 | Игнорируется
-Warray-bounds=2 | Игнорируется
-Warray-bounds-all | Аналогично -Warray-bounds, но без исключений. Включает в себя -Warray-bounds
-Warray-temporaries | Для языка Фортран предупреждать о создании временных массивов
-Wassign-where-compare-meant | Предупреждать о предположительно ошибочном использовании "=" вместо "=="
-Wattributes | Предупреждать о некорректном имени атрибута или неприменимости данного атрибута. Включает в себя -Wignored-attribute-cleanup, -Wincorrect-attribute-fallthrough
-Wbad-function-cast | Игнорируется
-Wbad-initializer-type | Предупреждать об инициализаторе несоответствующего типа
-Wbad-macro-redef | Предупреждать об переопределении макроса другим содержимым
-Wbad-return-value-type | Предупреждать об возврате значения несоответствующего типа
-Wbuiltin-declaration-mismatch | Предупреждать об объявлении функций, совпадающих по имени с builtin'ом, но отличающихся прототипом
-Wbuiltin-functions-redefined | Предупреждать о наличии собственных реализаций библиотечных функций, которые должны раскрываться в режиме -fbuiltin
-Wc-binding-type | Для языка Фортран предупреждать о типе переменной, несовместимом с языком C
-Wc90-c99-compat | Игнорируется
-Wc99-c11-compat | Игнорируется
-Wc++-compat | Игнорируется
-Wc++11-compat | Игнорируется
-Wc++0x-compat | Эквивалентно -Wc++11-compat
-Wc++14-compat | Игнорируется
-Wcast-align | Игнорируется
-Wcast-align=strict | Игнорируется
-Wcast-function-type | Игнорируется
-Wcast-qual | Игнорируется
-Wchar-subscripts | Игнорируется
-Wcharacter-truncation | Для языка Фортран предупреждать об обрубании символьных выражений
-Wclobbered | Игнорируется
-Wcomment | Предупреждать о вложенных комментариях
-Wcomments | Эквивалентно -Wcomment
-Wcompare-reals | Для языка Фортран предупреждать о сравнении на равенство (неравенство) вещественных или комплексных
-Wconditionally-supported | Игнорируется
-Wconstant-var-in-c-const-expr | Предупреждать об использовании const переменных в местах, где допустимы только const выражения (только в режиме языка C)
-Wconstant-pointer-condition | Предупреждать об управляющих условных выражениях, являющихся константами
-Wconstexpr-return-not-constant | Предупреждать о constexpr выражениях, которые не могут быть свёрнуты в константу
-Wconversion | Предупреждать об операциях неявного преобразования типов, которые могут изменить значение. Включает в себя -Wfloat-conversion, -Winteger-sign-change
-Wconversion-extra | Для языка Фортран предупреждать о неявных преобразованиях (не для всех преобразований)
-Wconversion-function-not-usable | Для языка Си++ предупреждать о том, что пользовательский оператор преобразования типа не будет использован
-Wconversion-null | Игнорируется
-Wcoverage-mismatch | В режиме -fprofile-use предупреждать о несоответствии между профилем и исходным текстом
-Wctor-dtor-privacy | Игнорируется
-Wdangling-else | Игнорируется
-Wdate-time | Игнорируется
-Wdeclaration-after-statement | Игнорируется
-Wdeclaration-hides-builtin | Эквивалентно -Wbuiltin-declaration-mismatch
-Wdelete-incomplete | Для языка C++ предупреждать об использовании указателя незавершённого типа в операторе delete
-Wdelete-non-virtual-dtor | Игнорируется
-Wdeprecated | Предупреждать о deprecated конструкциях
-Wdeprecated-copy | Игнорируется
-Wdeprecated-copy-dtor | Игнорируется
-Wdeprecated-declarations | Предупреждать об использовании переменной, функции или типа с __attribute__((deprecated))
-Wdesignated-init | Предупреждать о позиционной инициализации структуры, объявленной с __attribute__((designated_init))
-Wdiscarded-qualifiers | Предупреждать о неявном преобразовании типа между указателями, при котором теряются квалификаторы (только в режиме языка C, в языке Си++ такие преобразования запрещены)
-Wdiv-by-zero | Предупреждать о целочисленном делении на ноль (начиная с уровня -O1)
-Wdisabled-optimization | Игнорируется
-Wdouble-promotion | Игнорируется
-Wduplicated-branches | Игнорируется
-Wduplicate-clobber | Предупреждать о дублирующих описаниях clobber'ов ассемблерной вставки
-Wduplicated-cond | Игнорируется
-Wduplicate-specifier | Предупреждать о дублирующих спецификаторах
-Wduplicate-type-qualifier | Предупреждать о дублирующих квалификаторах типов
-Weffc++ | Игнорируется
-Wempty-body | Предупреждать о пустой последней альтернативе оператора if
-Wendif-labels | Предупреждать о лишнем тексте после препроцессорных директив
-Wenum-compare | Предупреждать о сравнении величин различных enum-типов
-Weof-newline | Предупреждать об отсутствии перевода строки в конце файла
-Wextern-inline-functions-redefined | Предупреждать о переопределении функций extern inline в режиме GNU C
-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-semi | Игнорируется
-Wextra-semicolon | Предупреждать о лишних символах ';'
-Wfloat-conversion | Игнорируется
-Wfloat-equal | Игнорируется
-Wfloat-equals | Игнорируется
-Wformat | Проверять аргументы вызова некоторых стандартных функций, работающих с форматной строкой. Включает в себя -Wformat-extra-args, -Wnonnull
-Wformat=1 | Эквивалентно -Wformat
-Wformat-extra-args | Предупреждать о наличии лишних параметров в вызовах функций с форматной строкой типа printf и scanf
-Wformat-nonliteral | Игнорируется
-Wformat-overflow | Игнорируется
-Wformat-overflow=1 | Игнорируется
-Wformat-overflow=2 | Игнорируется
-Wformat-security | Игнорируется
-Wformat-signedness | Игнорируется
-Wformat-truncation | Игнорируется
-Wformat-truncation=0 | Игнорируется
-Wformat-truncation=1 | Игнорируется
-Wformat-truncation=2 | Игнорируется
-Wformat-y2k | Игнорируется
-Wformat-zero-length | Игнорируется
-Wformat=2 | Эквивалентно комбинации опций -Wformat, -Wformat-nonliteral, -Wformat-security, -Wformat-y2k
-Wfree-nonheap-object | Игнорируется
-Wfunc-prototypes | Предупреждать о вызове функции, не имеющей прототипа в данном модуле в случае если это может привести к ошибке (начиная с уровня -O1). Работает только в режиме -fwhole
-Wfunction-elimination | Для языка Фортран предупреждать о игнорировании вызова функции
-Whsa | Игнорируется
-Wignored-attribute-cleanup | Предупреждать об игнорировании __attribute__((cleanup)) в режиме C++
-Wignored-pragmas | Предупреждать об известных директивах #pragma, которые игнорируются в текущем режиме компиляции
-Wignored-qualifiers | Предупреждать об игнорируемых квалификаторах
-Wimplicit | Эквивалентно комбинации опций -Wimplicit-int, -Wimplicit-function-declaration
-Wimplicit-fallthrough | Игнорируется
-Wimplicit-fallthrough=0 | Игнорируется
-Wimplicit-fallthrough=1 | Игнорируется
-Wimplicit-fallthrough=2 | Игнорируется
-Wimplicit-fallthrough=3 | Игнорируется
-Wimplicit-fallthrough=4 | Игнорируется
-Wimplicit-fallthrough=5 | Игнорируется
-Wimplicit-function-declaration | Предупреждать о неявных определениях функций (только в режиме языка C)
-Wimplicit-int | Предупреждать о неявном типе int для декларации функции без описания результата (только в режиме языка C)
-Wimplicit-interface | Для языка Фортран предупреждать о вызовах функций с неявным интерфейсом
-Wimplicit-procedure | Для языка Фортран предупреждать о вызовах процедур, у которых нет явного описания
-Wimplicit-vector-conversion | Предупреждать о неявном преобразовании типов для векторных типов с одинаковымы размерами, но разными базовыми типами
-Wincompatible-pointer-types | Предупреждать о неявном преобразовании типа из указателя в указатель несовместимого типа (только в режиме языка C, в языке Си++ такие преобразования запрещены)
-Wincompatible-types-conditional-operator | Предупреждать о несовместимых типах аргументов тернарного условного оператора
-Wincorrect-attribute-fallthrough | Для языков C/C++ предупреждать о случаях неправильного использования __attribute__((fallthrough)) внутри оператора switch
-Wincorrect-no-math-errno | Для языков C/C++ предупреждать о случаях неправильного использования опции -fno-math-errno
-Winit-self | Игнорируется
-Winline | Предупреждать о невозможности inline-подстановки функций (начиная с уровня -O2)
-Winline-noinline-conflict | Предупреждать о конфликтах между inline и noinline
-Wint-conversion | Предупреждать о неявном преобразовании типа из целого в указатель и из указателя в целое (только в режиме языка C, в языке Си++ такие преобразования запрещены)
-Wint-to-pointer-cast | Предупреждать о явном преобразовании типа из целого в указатель с отличающимся размером. В защищённом режиме опция игнорируется
-Wint-to-pointer-cast-same-size | Предупреждать о явном преобразовании типа из целого в указатель с совпадающим размером. В защищённом режиме опция игнорируется
-Wint32-to-pointer-cast-protected | В защищённом режиме предупреждать о явном преобразовании типа из целого размером 32 бита и меньше в указатель
-Wint64-to-pointer-cast-protected | В защищённом режиме предупреждать о явном преобразовании типа из целого размером 64 бита в указатель
-Wint128-to-pointer-cast-protected | В защищённом режиме предупреждать о явном преобразовании типа из целого размером 128 бит в указатель
-Winteger-division | Для языка Фортран предупреждать о делении целых констант с обрубанием результата
-Wintrinsic-shadow | Для языка Фортран предупреждать о совпадении имён пользовательской и встроенной процедур
-Wintrinsics-std | Для языка Фортран предупреждать о встроенной функции, которая не входит в указанный стандарт
-Winteger-sign-change | Предупреждать о преобразовании типа, приводящего к изменению знака целого
-Winvalid-builtin-arg | Предупреждать о некорректных параметрах некоторых builtin-функций (начиная с уровня -O1)
-Winvalid-memory-model | Предупреждать о некорректных параметрах, соответствующих модели памяти в атомарных builtin'ах
-Winvalid-pch | Игнорируется
-Winvalid-pragma-parameter | Предупреждать о некорректных параметрах известных директив #pragma
-Winvalid-offsetof | Предупреждать о некорректном использовании offsetof и __builtin_offsetof (только в режиме языка C++)
-Wjump-misses-init | Предупреждать о переходе через инициализацию
-Wline-truncation | Для языка Фортран предупреждать об обрубании строк исходного текста
-Wlogical-op | Игнорируется
-Wlong-long | Игнорируется
-Wlto-type-mismatch | Игнорируется
-Wmain | Предупреждать о неверном объявлении функции main
-Wmaybe-return-local-addr | Предупреждать о возможном возврате из функции адреса автоматической переменной (начиная с уровня -O1)
-Wmaybe-uninitialized | Предупреждать о возможно неинициализированных скалярных автоматических переменных (начиная с уровня -O1)
-Wmisleading-indentation | Игнорируется
-Wmissing-braces | Игнорируется
-Wmissing-declarations | Игнорируется
-Wmissing-include-dirs | Для языка Фортран предупреждать о несуществующей include директории
-Wmissing-field-initializers | Игнорируется
-Wmissing-format-attribute | Игнорируется
-Wmissing-initializer-in-constructor | Предупреждать об отсутсвии в конструкторе инициализатора для константных или ссылочных полей (только в режиме языка C++)
-Wmissing-initializer-on-const | Предупреждать об отсутствии инициализатора у переменной с квалификатором const (только в режиме языка C)
-Wmissing-noreturn | Игнорируется
-Wmissing-parameter-type | Предупреждать об отсутствия типа у параметра функции K&R (только в режиме языка C)
-Wmissing-prototypes | Игнорируется
-Wmixed-enum-type | Предупреждать о смешивании enum и не-enum типов
-Wmultichar | Предупреждать о наличии multichar литералов
-Wnarrowing | Предупреждать о narrowing conversions
-Wnested-externs | Игнорируется
-Wnoexcept | Игнорируется
-Wnoexcept-type | Игнорируется
-Wnonnull-compare | Игнорируется
-Wnonstd-extra-comma | Предупреждать о замыкающих запятых, не соответствующих стандарту
-Wnon-virtual-dtor | Предупреждать о невиртуальном деструкторе базового класса
-Wnonnull | Предупреждать о передаче нулевого указателя в качестве аргумента, помеченного через __attribute__((nonnull))
-Wnormalized | Игнорируется
-Wnormalized=none | Игнорируется
-Wnormalized=id | Игнорируется
-Wnormalized=nfc | Игнорируется
-Wnormalized=nfkc | Игнорируется
-Wnull-conversion | Игнорируется
-Wnull-dereference | Игнорируется
-Wodr | Игнорируется
-Wold-style-cast | Игнорируется
-Wold-style-declaration | Предупреждать о декларациях в устаревшем стиле (только в режиме языка C)
-Wold-style-definition | Предупреждать об описании процедуры в старом стиле (только в режиме языка C). Включает в себя -Wimplicit-function-declaration, -Wimplicit-int
-Wopenmp-simd | Игнорируется
-Worphan-pragmas | Предупреждать об известных директивах #pragma, которые поставлены в неправильном месте исходника
-Woverflow | Предупреждать о целочисленном переполнении
-Woverlength-strings | Игнорируется
-Woverloaded-virtual | Предупреждать об объявлениях виртуальных методов, которые скрывают виртуальные методы базового класса
-Woverride-init | Игнорируется
-Wpacked | Игнорируется
-Wpacked-bitfield-compat | Игнорируется
-Wpadded | Игнорируется
-Wparam-id-list-needs-function-def | Предупреждать о списке параметров без описания типов в описании функции
-Wparentheses | Игнорируется
-Wpartial-overloaded-virtual | Предупреждать о ситуациях, когда переопределены не все перегрузки виртуального метода
-Wpointer-arith | Предупреждать о вычислениях над указателями на функции или на void
-Wpointer-qual | Эквивалентно -Wdiscarded-qualifiers. Опция устарела и будет удалена
-Wpointer-sign | Предупреждать о неявном преобразовании типа между указателями, отличающимися только знаковостью базовых типов (только в режиме языка C, в языке Си++ такие преобразования запрещены)
-Wpointer-to-int-cast | Предупреждать о явном преобразовании типа из указателя в целое с отличающимся размером (только в режиме языка C). В защищённом режиме опция игнорируется
-Wpointer-to-int-cast-same-size | Предупреждать о явном преобразовании типа из указателя в целое с совпадающим размером (только в режиме языка C). В защищённом режиме опция игнорируется
-Wpointer-to-int32-cast-protected | В защищённом режиме предупреждать о явном преобразовании типа из указателя в целое размером 32 бита и меньше (только в режиме языка C, в языке Си++ такие преобразования запрещены)
-Wpointer-to-int64-cast-protected | В защищённом режиме предупреждать о явном преобразовании типа из указателя в целое размером 64 бита
-Wpointer-to-int128-cast-protected | В защищённом режиме предупреждать о явном преобразовании типа из указателя в целое размером 128 бит
-Wpointer-to-pointer-cast | Эквивалентно -Wincompatible-pointer-types. Опция устарела и будет удалена
-Wpragma-unroll-check | Предупреждать (начиная с уровня -O2) о значениях pragma unroll, которые могут ухудшить производительность
-Wpragmas | Предупреждать о некорректном использовании директив #pragma
-Wpsabi | Игнорируется
-Wreal-and-imag-applied-to-real-value | Предупреждать об операторах __real и __imag, применяемых к целочисленному или вещественному значению
-Wreal-q-constant | Для языка Фортран предупреждать о вещественных константах с обозначением экспоненты буквой "q"
-Wrealloc-lhs | Для языка Фортран предупреждать о том, что левая часть массивного присваивания будет заново размещена
-Wrealloc-lhs-all | Для языка Фортран предупреждать о том, что левая часть присваивания будет заново размещена
-Wreduced-alignment | Предупреждать о настройке меньшего выравнивания переменной, чем написано в __attribute__((alignment))
-Wredundant-decls | Игнорируется
-Wreorder | Проверять порядок инициализации полей класса в конструкторе (только в режиме языка C++)
-Wrestrict | Игнорируется
-Wreturn-local-addr | Предупреждать о гарантированном возврате из функции адреса автоматической переменной (начиная с уровня -O1) и дополнительно включить опцию -Wmaybe-return-local-addr
-Wreturn-type | Предупреждать о неявных return из не-void функции
-Wsequence-point | Игнорируется
-Wshadow=global | Проверять, что локальная переменная скрывает другую переменную с таким же именем
-Wshadow=local | Игнорируется
-Wshadow=compatible-local | Игнорируется
-Wshadow | Эквивалентно -Wshadow=global
-Wshadow-local | Эквивалентно -Wshadow=local
-Wshadow-compatible-local | Эквивалентно -Wshadow=compatible-local
-Wshift-count-overflow | Предупреждать, если величина сдвига превышает битовый размер типа аргумента сдвига
-Wsign-compare | Предупреждать о сравнении знаковых и беззнаковых величинах
-Wsign-conversion | Игнорируется
-Wsign-promo | Игнорируется
-Wsigned-one-bit-field | Предупреждать о знаковом битовом поле размером 1 бит
-Wsized-deallocation | Игнорируется
-Wshift-overflow | Игнорируется
-Wshift-overflow=1 | Игнорируется
-Wshift-overflow=2 | Игнорируется
-Wstack-protector | Игнорируется
-Wstatic-reference-in-c99-inline-function | Предупреждать о вызове static-функции или использовании static-переменной в inline-функции в режиме языка C99 и выше
-Wstdfunc-prototypes | Предупреждать о несоответствии прототипа со стандартным для функций, описанных в стандарте языка Си (начиная с уровня -O1). Работает только в режиме -fstdlib
-Wstrict-aliasing | Эквивалентно -Wstrict-aliasing=3
-Wstrict-aliasing=1 | Предупреждать о приведениях типов, потенциально способных привести к нарушению правил перекрытия объектов в памяти. Работает только в режиме -fstrict-aliasing
-Wstrict-aliasing=2 | Предупреждать о возможных нарушениях правил перекрытия объектов в памяти. Работает только в режиме -fstrict-aliasing
-Wstrict-aliasing=3 | Предупреждать о гарантированных нарушениях правил перекрытия объектов в памяти. Работает только в режиме -fstrict-aliasing
-Wstrict-null-sentinel | Игнорируется
-Wstrict-overflow | Игнорируется
-Wstrict-overflow=1 | Игнорируется
-Wstrict-overflow=2 | Игнорируется
-Wstrict-overflow=3 | Игнорируется
-Wstrict-overflow=4 | Игнорируется
-Wstrict-overflow=5 | Игнорируется
-Wstrict-prototypes | Предупреждать об описании или определении функции без явного описания аргументов (только в режиме языка C)
-Wstringop-overflow | Игнорируется
-Wstringop-overflow=0 | Игнорируется
-Wstringop-overflow=1 | Игнорируется
-Wstringop-overflow=2 | Игнорируется
-Wstringop-overflow=3 | Игнорируется
-Wstringop-overflow=4 | Игнорируется
-Wstringop-truncation | Игнорируется
-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-override | Игнорируется
-Wsurprising | Для языка Фортран предупреждать о подозрительных конструкциях
-Wswitch | Игнорируется
-Wswitch-default | Игнорируется
-Wswitch-enum | Игнорируется
-Wsync-nand | Игнорируется
-Wsynth | Игнорируется
-Wtabs | Для языка Фортран предупреждать об использовании символа табуляции
-Wtarget-lifetime | Для языка Фортран предупреждать о возможно некорректном присваивании указателей
-Wtraditional | Предупреждать о конструкциях, которые имеют различное поведение в традиционном и ISO C
-Wtrampolines | Игнорируется
-Wtrigraphs | Игнорируется
-Wtrigraphs-ignored | Предупреждать о наличии триграфов в режимах, их не поддерживающих
-Wtype-limits | Предупреждать о бессмысленных сравнениях беззнаковой переменной с нулем
-Wtypedef-redefinition | Предупреждать о повторных typedef'ах с одним и тем же именем
-Wundef | Предупреждать об использовании ноля при препроцессировании для неопределенного идентификатора
-Wundefined-do-loop | Для языка Фортран предупреждать о о некорректном цикле "DO"
-Wunderflow | Для языка Фортран предупреждать о переполнении в константном выражении
-Wuninitialized | Предупреждать о гарантированно неинициализированных скалярных автоматических переменных (начиная с уровня -O1)
-Wunknown-pragmas | Предупреждать о неизвестных директивах #pragma
-Wunreachable-code | Предупреждать о недостижимом коде
-Wunsafe-loop-optimizations | Игнорируется
-Wunsuffixed-float-constants | Игнорируется
-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-builtin-result | Предупреждать о неиспользуемом результате вызова builtin-функции в случаях, когда это не имеет смысла (начиная с уровня -O1)
-Wunused-but-set-parameter | Для языка Фортран предупреждать о неиспользованном формальном параметре, в который есть присваивание
-Wunused-but-set-variable | Предупреждать об инициализированных, но неиспользуемых переменных (начиная с уровня -O1)
-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-function | Предупреждать о неиспользуемых функциях, кроме static inline функций
-Wunused-function-all | Предупреждать о неиспользуемых функциях. Включает в себя -Wunused-function
-Wunused-label | Предупреждать о неиспользуемых метках
-Wunused-local-typedefs | Игнорируется
-Wunused-macros | Игнорируется
-Wunused-parameter | Для языков C/C++ предупреждать о неиспользуемом параметре. Для языка Фортран предупреждать о неиспользованной именованной константе (PARAMETER)
-Wunused-result | Предупреждать о неиспользуемом результате вызова функции с __attribute__((warn_unused_result))
-Wunused-value | Предупреждать о выражениях, не имеющих эффекта
-Wunused-variable | Предупреждать о неиспользуемых переменных. В режиме языка C включает в себя -Wunused-const-variable=1
-Wunused-variable-all | Эквивалентно -Wunused-variable. Опция устарела и будет удалена
-Wuse-without-only | Для языка Фортран предупреждать об использовании оператора USE без квалификатора ONLY
-Wuseless-cast | Игнорируется
-Wvarargs | Игнорируется
-Wvariadic-macros | Игнорируется
-Wvector-operation-performance | Игнорируется
-Wvla | Игнорируется
-Wvoid-pointer-to-function-pointer-cast | Предупреждать о неявном преобразовании типа из указателя на void к указателю на функцию (только в режиме языка C, в языке Си++ такие преобразования запрещены)
-Wvolatile-register-var | Игнорируется
-Wwrite-strings | Предупреждать об использовании преобразования строкового литерала в тип char*
-Wzero-as-null-pointer-constant | Игнорируется
-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 | Настройки предупреждений вернуть в состояние по умолчанию
-pedantic | Выдавать предупреждения о несоответствии строгому стандарту ISO C, ISO C++ или ISO Fortran. Включает в себя -Wtypedef-redefinition
-pedantic-errors | То же, что и -pedantic, только выдавать ошибку
-Wremarks (-Wno-remarks) | Включить (выключить) печать замечаний
-W | Эквивалентно -Wextra
-Wframe-larger-than=<size> | Предупреждать, если размер стека для процедуры превышает <size> байт
-Wlarger-than= | Игнорируется
-Wstack-usage= | Игнорируется
-Wpedantic | Эквивалентно -pedantic
-w | Подавлять все предупреждения и замечания компилятора, относящиеся к исходному тексту программы
-w<id> | Для языков C/C++ подавить предупреждение или замечание компилятора, относящееся к исходному тексту программы и имеющее номер <id>. Опция имеет самый низкий приоритет
Базовые опции оптимизаций
-O0 | Компилировать без оптимизаций
-Og | Эквивалентно -O0
-O1 | Минимальный уровень оптимизаций. Включает только локальные платформо-независимые оптимизации
-O2 | Более высокий уровень оптимизаций, сбалансированный по времени компиляции, производительности и размеру кода. Включает в себя оптимизации уровня -О1 и основные платформо-зависимые оптимизации
-O3 | Ещё более высокий уровень оптимизаций, нацеленный на получение высокой производительности. Включает в себя оптимизации уровня -О2 и агрессивные платформо-зависимые оптимизации, которые могут приводить к значительному росту размера кода
-O4 | Максимальный уровень оптимизаций. Эквивалентно -O3 -fno-gos-solver
-O | Эквивалентно -O2
-Osize | Эквивалентно -O2
-Os | Эквивалентно -O2
-Ofast | Эквивалентно -O3 -ffast-math -fstack-arrays (последнее - если не подана опция -fmax-stack-var-size)
-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-kernel-generate | Опция устарела и будет удалена в следующей версии компилятора.Вместо неё следует использовать -fprofile-generate-kernel
-fprofile-subst=<old_module_name1>:<new_module_name1>,... | Заменить имя считанного из профиля файла <old_module_name> на указанное имя <new_module_name>
-fprofile-strict-names | Выдать ошибку при отсутствии в профиле информации для файла, поданного в командной строке
-fprofile-values | Включить режим профилирования значений переменных
-fprofile-skip-proc=<proc1,proc2,...> | Данные процедуры не будут инструментироваться, профиль для них не будет загружаться
-fprofile-skip-module=<module1,module2,...> | Данные модули не будут инструментироваться, профиль для них не будет загружаться
-fprofile-filter-files=<regex1;regex2;...> | Инструментирвоаться будут только файлы, подходящие под указанный шаблон
-fprofile-exclude-files=<regex1;regex2;...> | Файлы, подходящие под заданные шаблоны не будут инструментирвоаться, их профили не будут загружаться
Опции режима "вся программа"
-fwhole | Включить режим компиляции "вся программа"
-fwhole-shared | Если подана опция -fPIC или -shared, то эквивалентно -fwhole, иначе игнорируется
Опции пиковой производительности
-fblack-hole | Включить версию оптимизации Black Hole по счётчикам
-fblack-hole=<f> | Включить вероятностную версию оптимизации Black Hole и установление пороговой вероятности для нее [0.0-1.0]
-fno-loop-blocking | Отключить оптимизацию Loop Blocking - разрезание циклов с многократным обходом одинаковых участков памяти с целью оптимизации использования кэш-памяти
-fno-loop-jam | Отключить оптимизацию Loop Jam - слияние независимых смежных циклов с одинаковым количеством итераций
-fno-swp-ext | Отключить расширенную версию программной конвейеризации циклов (SoftWare Pipeline)
-fno-sr | Отключить оптимизацию Scalar Replacement - сбор межитерационных общих подвыражений
-fno-loop-ivrm | Отключить оптимизацию удаления избыточных индуктивных переменных
-fno-loop-float-ivrm | Отключить оптимизацию удаления избыточных вещественных индуктивных переменных
-fno-vect | Отключить оптимизацию векторизации вычислений
-fsafe-vect | Использовать безопасный способ векторизации невыровненных чтений
-fno-loop-unroll | Отключить оптимизацию Loop Unroll - раскрутка цикла
-fno-loop-unroll-jam | Отключить оптимизацию Loop Unroll 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 - вынос маловероятных участков из цикла с созданием объемлющего цикла
-fno-loop-peeling | Отключить оптимизацию Loop Peeling - вынос вверх нескольких первых итераций малоитерационного цикла
-fno-loop-full-peeling | Отключить оптимизацию Loop 2 Scalar - преобразования цикла в скалярный код
-fno-loop-unswitching | Отключить оптимизацию Loop Unswitching - расщепление цикла по инвариантному условию
-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 - вынос переменных из циклов
-fno-loop-fill-objs | Отключить оптимизацию Loop Reroll - перевод на регистры объектов цикла, распределенных в память
-fno-gcp | Отключить оптимизацию Global Copy Propagation - уменьшения глобально живущих объектов
-fno-rtmd | Отключить оптимизацию Loop Run-Time Memory Disambiguation - динамический разрыв зависимостей по памяти в цикле
-fno-srtmd | Отключить оптимизацию Scalar RTMD - динамических разрыв блоков зависимостей по памяти на линейном участке
-fno-switch-opt | Отключить оптимизацию switch'ей
-fvir (-fno-vir) | Включить оптимизацию выноса векторного инварианта
-fno-comb-oper | Отключить генерацию комбинированных операций
-fno-memopt | Отключить оптимизацию расположения массивов в памяти
-fno-merge-oper | Отключить генерацию операций merge на поздних фазах компиляции
-fno-global-regs | Отключить использование глобальных регистров
-fprefetch | Включить программную предподкачку данных для неконвейеризованных циклов
-fno-prefetch | Отключить технику программной предварительной подкачки данных
-fset-ld-delay=<n> | Задать задержку для операций чтения из памяти
-fset-mau-delay=<n> | Задать время в тактах микропроцессора, необходимое на подкачку данных из оперативной памяти в кэш L2
-fblock-size-limit=<n> | Установить ограничение на максимальный размер линейного участка (по умолчанию 290 операций) [8-65535]
-finline-level=<f> | Задать эвристику для подстановки функций - коэффициент увеличения интенсивности подстановки [0.1-20.0]
-finline-scale=<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-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-arrays | Включить оптимизацию Constant Propagation для статических массивов
-fipo-cprop-globals | Включить оптимизацию Constant Propagation для адресов глобальных объектов
-fipo-cprop-cond | Включить оптимизацию Constant Propagation для глобальных переменных, которые изменяются под невыполнимым условием
-fmain-l2g | Включить преобразование локальных объектов процедуры main в глобальные
-fipa-pta (-fno-ipa-pta) | Включить межпроцедурный анализ зависимостей указателей
-fipa0 | Выключить межпроцедурные анализы указателей
-fipa1 | Включить межпроцедурный анализ указателей и функций
-fipa2 | Включить межпроцедурный анализ указателей и функций, межпроцедурное распространение констант
-fmem-functions-subst | Включить оптимизацию вызовов функций memset, memcpy, memmove
-fmalloc-opt (-fno-malloc-opt) | Разрешить удалять, перемещать и заменять на выделение стека вызовы функций malloc, free и им подобных
-ffast-mem | Разрешить преобразования стандартных функций выделения/освобождения памяти
-fswitch-opt-ext | Включить расширенную версию оптимизации оператора switch
-fstrict-overflow | Разрешить оптимизации на основе предположения о невыходе за границы диапазона целого знакового типа при выполнении операций над знаковыми целыми
-fno-strict-overflow | Запретить оптимизации на основе предположения о невыходе за границы диапазона целого знакового типа при выполнении операций над знаковыми целыми
-floop-fusion-late | Отложенное применение оптимизации loop fusion
-floop-split-by-cond | Включение оптимизации разбиения цикла условию (отключена по умолчанию)
-fforce-delin | Принудительно делинеаризовать массивы C по подобию Фортран 77
-fforce-rtmd | Снять ограничение по коду для оптимизации Run-Time Memory Disambiguation
-fforce-split-by-index | Отключить проверки эффективности применения оптимизации расщепления цикла по индексу
-frtmd-aggr | Снять ограничение на максимальное количество обрабатываемых пар для оптимизации Run-Time Memory Disambiguation
-fforce-unroll=<n> | Включить принудительную раскрутку всех циклов [1-8]
-funroll-scale=<f> | Коэффициент увеличения основных ресурсных ограничений Loop Unroll [0.1-8.0]
-fforce-vect | Включить принудительную векторизацию циклов
-fforce-alignopt | Включить принудительное выравнивание операций обращения к памяти в циклах
-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-all | Все указатели внутри процедуры трактовать как с модификатором restrict
-frestrict-unsafe | Включить более агрессивный разрыв зависимостей для restrict-указателей
-fno-strength-reduce | Запретить оптимизацию понижения силы операций
-fvect-verbose | Включить печать параллелизма операций
-fovl-verbose | Включить печать о результатах планирования конвейеризованных циклов
-fzero-strides(-fno-zero-strides) | Учитывать (не учитывать) при анализе цикловых зависимостей, что шаг адреса операции обращения в память может быть нулевым
-fautopar | Включить автоматическое распараллеливание
-fthreads=<n> | Количество потоков, на которое параллелить программу
-fpar-numa= | Применить автоматическое распределение памяти по узлам NUMA-машины совместно с автоматическим распараллеливанием
-fpar-distr-mem= | Применить автоматическое распределение памяти по узлам для комплекса с распределённой памятью совместно с автоматическим распараллеливанием
-fral-esb-factor=<f> | Задать пороговое значение вероятности исполнения линейного участка для проведения дополнительных оптимизаций распределения регистров [0.0-1.0]
-fsetjmp-opt | Оптимизировать процедуры с вызовами setjmp
-flcv (-fno-lcv) | Включить (отключить) Loop Counter Versioning
-fcanon-calls (-fno-canon-calls) | Включить (отключить) Canon Calls: замену передачи параметров функции по указателю на передачу по значению
-fignore-getenv-call | Игнорировать вызовы getenv(name), всегда возвращая нулевой указатель на информацию об окружении, ассоциированную со строкой name
Опции, которые могут приводить к неточным преобразованиям
-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
Опции работы с sanitizer'ами
-fsanitize=<san1,san2,...> (-fno-sanitize=<san1,san2,...>) | Включить (выключить) sanitizer'ы <san1>, <san2>, ...
Расширенные опции управления процессом компиляции
-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) | Линковать до позиционно-независимого исполняемого файла
-r | Создать relocatable object
-rdynamic | Вывести все символы в динамическую таблицу символов
-shared | Создать динамическую библиотеку
-shared-libgcc | Принудительно использовать динамическую версию libgcc
-static-libgcc | Принудительно использовать статическую версию libgcc
-static-libstdc++ | Принудительно использовать статическую версию libstdc++
-static-libgfortran | Принудительно использовать статическую версию libgfortran
-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 | Печатать установленные переменные окружения, влияющие на работу компилятора
Опции для повторения внутренних свойств gcc
-ftext-switch-table | Таблицу переходов switch'а помещать в секцию .text
-fcopy-aggregate-memcpy[=<size>] | При агрегатном копировании [размером не менее <size> байт] вместо цикла использовать вызов функции memcpy
Игнорируемые опции (для совместимости с gcc)
-F <dir> (-F<dir>) |
-faggressive-loop-optimizations (-fno-aggressive-loop-optimizations) |
-falign-labels (-fno-align-labels) |
-falign-labels=<val> |
-falign-loops (-fno-align-loops) |
-falign-loops=<val> |
-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> |
-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) |
-fsanitize-recover=(-fno-sanitize-recover=) |
-fsanitize-recover=all (-fno-sanitize-recover=all) |
-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) |
-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) |
-fstdarg-opt (-fno-stdarg-opt) |
-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-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) |
-malign-jumps (-mno-align-jumps) |
-malign-jumps=<val> |
-mpreferred-stack-boundary=<val> |
-mlong-double-128 |
-mv8plus (-mno-v8plus) |
--param <str> (--param=<str>) |
-pipe (--pipe) |
Игнорируемые опции (для совместимости с прошлыми версиями lcc)
-fipo-min-region-size= | Опция устарела и будет удалена
-fipo-max-region-size= | Опция устарела и будет удалена
-fno-ipo-region | Опция устарела и будет удалена
-fomp-for-procs= | Опция устарела и будет удалена
Поддерживаемые переменные окружения
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