GCC - The Complete Reference (537669), страница 113
Текст из файла (страница 113)
Он может быть отключен применением обратной опции -спо-се1ауес-Ьтапсп. -Ыадпой1св-в1зогяг-! осабоп= ийеге Предусмотрена возможность разбиения длинных сообщений диагностики (как предупреждений так и сообшений об ошибках) на несколько строк при их выводе.
По умолчанию поле млека имеет значение опсе. Оно определяет однократное включение в сообшение имени и пути расположения файла исходного кода, вызвавшего это сообщение. Значение е гету-11пе укаЗывает включение информации о расположении исходного кода в каждую строку сообщения. Опция в разных случаях ее применения действует по-разному Она вообще имеет смысл только при ненулевом значении (или значении по умолчанию) параметра опции -сгвевваде-1епдСЬ. гогггап -Ыодаг-о1с Разрешает использование в символических ссылках (зугпЬо! пагпез) знака "3" (" доллар" ).
-Ес1оПагв-1п-ИепИ!его с, с++ Воспринимает знак "доллар" ("в") как допустимый буквенный символ для использования в идентификаторах. При использовании обратной опции -Епо-со11акв-1п-ссепссхсегв использование знака "В" будет строго исключено. Значение этого флага меняется в зависимости от платформы предназначения я языка программирования. Традиционный стандарт языка С разрешает использование знаков "в", в то время как более новые стандарты не допускают этого. Поэтому, если вам нужно определить правило применения этого буквенного символа, то лучше это сделать явным образом.
-Иыпзр-с!ай-111егагс1зу1-ЕогтаЦ С++ По этой опции компилятор для каждого класса выводит дами иерархии и таблицу виртуальных функций в файл, имеющий в своем названии имя класса и суффикс . с1авв. Необязательный параметр еохзяае может иметь одно из следующих значений: ° аатевв — Выводит адрес каждого узла, этот адрес может быть использован для перекрестного сравнения с другими дампами. В том числе и с лампами, выводимыми по опции -с. Приложение Г.
Опции командной строки компилятора 6СС 5 1 1 ° в11кп — Уменьшает размер вывода за счет подавления такой информации, как код определения функций или область действия идентификаторов. ° а11 — Увеличивает размер вывода, определяя включение в дами всей возможной информации. -Иит р-агапе! акоп-опй~г-Фогтам~ С, С++ -36ипзр-тгее-иийсИ1-Фогтами С++ Выводит дамп различных этапов преобразования внутреннего представления дерева исходного кода на промежуточном языке. Информация выводится в файл, имя которого соответствует имени исходного файла и имеет суффикс, соотве~с~вующий значению параметра вяк1 сои.
Параметр вяк1 еол должен иметь одно из следующих значений: ° ох1д1па1 — Выводит в файл ааае. ог1дхпа1 дерево внутреннего представления исходного кода до выполнения каких-либо преобразований на уровне промежуточного языка. ° оре1вт1хекз — Выводит в файл с именем папе. орк1кя1хект дерево внутреннего представления исходного кода после выполнения всех преобразований уровня промежуточного языка. ° 1п11пеет — Выводит дерево внутреннего представления исходного кода в файл с именем паве. 1п11пей после выполнения всех подстановок кода ьпйпе функций. Необязательный параметр хохзяас может иметь одно из следующих значений: ° аетхев в — Выводит адрес каждого узла дерева.
Этот адрес может быть использован для перекрестного сравнения с другими дампами. В том числе и с дампами, выводимыми по опции -«1 . ° в11кп — Уменьшает размер вывода за счет подавления такой информации, как код определения функций или область действия идентификаторов. е а11 — Увеличивает размер вывода, определяя включение в дами всей возможной информации. По этой опции компилятор для каждого модуля выводит дерево внутреннего представления исходного кода. Информация выводится в файл, имеющий в своем названии имя исходного файла и суффикс .
сц, Необязательный параметр гохзяас может иметь одно из следующих значений: ° абгевв — Выводит адрес каждого узла дерева внутреннего представления исходного кода. Этот адрес может быть использован для перекрестного сравнения с другими дампами. В том числе и с дампами, выводимыми по опции -«з. ° в11ко — Уменьшает размер вывода за счет подавления такой информации, как код определения функций или область действия идентификаторов, ° а11 — Увеличивает размер вывода, определяя включение в дамп всей возможной информации. 5 1 2 Часть!У. Приложения -Ингпр-нппнтЬегед При отладке компилятора с опцией -о подавляет вывод в выходные файлы номеров инструкций ассемблера и номеров строк.
Это упрощает использование утилиты Мйс для сравнения дампов. -1еИе-сопв1гнс1огв С++ Действуе~ по умолчанию, Упрошает генерируемый код, если он вызывает функцию, возврашаюшую объект значением его адреса. В результате оптимизации функция создает экземпляр объекта непосредственно в указанном расположении возвращаемого значения вместо использования конструктора копирования объекта, созданного внутри локальной области действия функции. Это может вызывать проблемы в случае, если конструктор оказывает побочное действие на результат.
Отменить значение флага по умолчанию можно применением обратной опции -хпо-е1Ые-сопаогцсоога. -1егпн!аде-согпр! ех Еог1гап Применяет эмуляцию арифметических действий с комплексными числами вместо использования встроенной прямой поддержки комплексной арифметики нижнего уровня ОСС. Эта опция была предусмотрена для обхода присутствовавших в предыдущих версиях ошибок с реализацией комплексной арифметики.
Сейчас считается, что этя ошибки уже устранены. -1епсосИпд=папге Зауа Поле паше указывает название набора буквенных символов применяемой при считывании исходных файлов кодировки. По умолчанию используется текушая установка компилятора, либо, при ее отсутствии, набор ото-8. -1еп1огсе-ей-ересь Действует по умолчанию. ОСС вырабатывает код, обрабатывающий исключения во время выполнения программы в соответствии с применяемым стандартом языка С++. Установка обратной опции -1по-епхогсе-еЬ-аресв отключает генерирование кода обработки исключений, Это уменьшает размер скомпилированной программы.
-гехсер моп5 Включает поддержку обработки исключений. По этой опции компилятор генерирует дополнительный код, который вызывает и обрабатывает исключения. Без особого указания этой опции она автоматически применяется при компиляции программ на таких языках как АЫа, .Гата и С++. Те.
тех языках, стандарты которых предусматривают использование обработки исключений. Код обработки исключений достаточно оптимален и не оказывает особого влияния на скорость выполнения программы. Но отключение генерирования этого кода опцией -хпо-ехсерсопа может сушественно уменьшить размер программы на С++, которая не использует обработку исключений. Приложение Г. Опции командной строки компилятора ОСС 5 1 3 См. также -1поп-са11-ехсерс1опв, -йипм1пет-саЬ1ев и -ГавупсЬгопоив-ипм1п»5-саЬ1ее.
-1ехреп51тге-ор11Гп12а1! оп5 Этот флаг включает применение нескольких оптимизаций вообще довольно эффективных, но требующих серьезного увеличения затрат времени на компиляцию программы. Например, общая оптимизация удаления общих подвыражений СЯЕ (Сопппоп ЯцЬехргеза)оп Е1пп!па(1оп) при этом флаге запускается снова после прохода удаления общих глобальных подвыражений. Некоторые другие оптимизации применяются глубже, чем обычно по умолчанию. Этот флаг устанавливается автоматически при определении опций -о2„-оз и -ов, но может при необходимости быть ОТКЛЮЧЕН ПРИМЕНЕНИЕМ ОбратНОй ОПЦИИ -ГПО-ЕХрЕПВ*'тГЕ-ОрИта1яасвОПЕ. -1ех1егпаИеГпр1а1е5 с++ Опция распознается компилятором, но ее поддержка прекратилась, (г)ергеса!ед ор!!оп). В соответствии с этой опцией экземпляры шаблона кода могут подстанавливаться или нет в зависимости от расположения кода его определения.
В последних версиях ОСС экземпляры шаблона включаются в точном соответствии с директивами йрга5ява 1пгегйасе и йргайтаа 1шр1етепгае1оп. См. также опцию -Га1г-ехгегпа1-сежр1агев. -Н2с гОГТГаП Опция действует по умолчанию и назначает генерирование кода, совместимого с требованиями Г2с. Угилита 2 2с применяется для трансляции исходного кода с языка Рогггал на язык С. Установка обратной опции -аппо-й2с подавляет выработку совместимого с й2с кода и вместо этого применяет соглашения о вызовах ОХ13. Это не влияет на взаимодействие кода с библиотекой 11Ьй 2с, если только отдельное определение не закрывает использование в качестве аргументов встроенных функций этой библиотеки. При использовании опции -аппо-й2с ее следует применять при компиляции всех модулей, используемых в компоновке одной программы.
-Н2С-1П1Г! П51 С5-ДАМСЯ Значение поля вресв определяет статус специфических встроенных функций (!и!ппа)са) расширения 12с, которые имеют некорректный формат относительно определений при меняеыого стандарта языка. Утилита й2с применяется для трансляции исходного кода с языка ХоИгвп на язык С. Возможны следующие значения вресв: ° епаЬ1е — Встроенные функции набора расширения Г2с распознаются и их использование возможно. Это значение применяется по умолчанию.
° чае — Встроенные функции й2с распознаются, но для их использования при первом вызове такой функции следует применить оператор 1вггихыяхов. ° 61ваЬ1е — Встроенные функции 12с распознаются, но их использование допускается только если перед именем каждой из них стоит оператор хьггкхьтягсв. ° ае1еее — Встроенные функции набора й2с не распознаются.