GCC - The Complete Reference (537669), страница 114
Текст из файла (страница 114)
17 к гриффи»а 5 14 часть пг. приложения Еог1гап Компилируемый исходный код считается соответствующим диалекту Гогггап 66. См. также опции -1177 и -1190. -Н77 ЕогТгап Компилируемый исходный код считается соответствующим диалекту ГогГгап 77. При этом также считается что этот диалект соответствует входным требованиям утилиты хдс и с ее помощью возможна трансляции исходного кода с языка РогГгал на язык С. См.
также опции -бббб и -баяв. -Н90 Еог1гап При этой опции компилятор будет распознавать конструкции, свойственные диалекту ГоПгап 90. Применение опций -йчхв и -1ИО-1пег1пв1св-вресв дает возможность использования дополнительных конструкций диалекта Гопгап 90. См. также опции -бйбб и -1177.
-090-1п1г1пб1сб-Яресб Еог1гап Значение поля вресв определяет возможность использования специфических встроенных функций (1пгг!пз1сз) диалекта Гопгап 90, которые имеют форму, конфликтующую с основными определениями стандарта языка Рогггап. Возможны следующие значения вресв: ° епаЬ1е — Встроенные функции диалекта Гонгап 90 распознаются и использование их возможно. Это значение применяется по умолчанию. ь Ь1гзе — Встроенные функции диалекта распознаются, но для их использования при первом вызове такой функции следует применить оператор хьгтдхьгяхся. ° Я1ваЬ|е — Встроенные функции диалекта распознаются, но их использование допускается только если перед именем каждой из них стоит оператор 1ытяхьгяхся.
° яе1есе — Встроенные функции диалекта Гогггап 90 не распознаются. -НабТ-гоаб При этой опции некоторые математические вычисления выполняются быстрее за счет отступления от требований стандартов 1БО и 1ЕЕЕ. Например, при установке этой опции считается что функции вхггс () не будут передаваться отрицательные аргументы или недопустимые значения с плавающей точкой. И, соответственно, при этом будет отключена обработка таких ситуаций. Применение этой опции определяет макрос препроцессора Ядат мдтн и устанавливает опции -аппо-шасЬ-еггпо, -1ппвайе-гвасЬ-орс1га1гас1опв я -аппо-егарр1пд-гяаСЬ. При применении обратной опции -йпо-йавс-гваСЬ автоматически устанавливается опция -бгвасЬ-еггпо. Приложение Г.
Опции командной строки компилятора ОСС 5 15 -Н! хек-геуШег Определенный этой опцией регистр процессора с именем гед1всег считается фиксированным регистром, он не может быть выделен для использоваться компилятором. Это не отменяет использование этого регистра для выполнения действий с основными фиксированными регистрами, такими как указатель вершины стека, указатель текущего кадра стека, и т.п. Имена регистров зависят от платформы, они перечислены в макросе описания машины ккахзткп клмкя. См. также -сса11-алвес-гед1веег и -1са11-ватгед-гед1веег. ЕогТгап -Н~хесИогт Действует по умолчанию.
Указывает, что исходный код написан в соответствии с традиционным фиксированным форматом языка Гогггол, а не свободную форму наподобие исходного кода стандарта Гопгап 90. Равносильна опции -спо-хгее-гогак -Немед-Ипе-1епдФ-!еп Гонга п Поле 1еп определяет номер последнего столбца исходного кода, за которым будут игнорироваться все символы в исходном файле фиксированного формата. Указание опции -111хес-11де-1еддсЬ-0 или -111хеб-11де-1еддсь-доде снимает ограничение на длину обрабатываемой компилятором строки входного исходного файла. По умолчанию 1еп имеет значение 7 г. В этом случае при ширине страницы в 80 столбцов остающееся поле из 8 символов используется для последовательной нумерации строк исходного кода.
-Н! оаэи-дроге При этой опции компилятор не выделяет регистры общего назначения для хранения значений с плавающей точкой. На некоторых машинах это позволяет использовать специальные регистры, которые имеют более высокую точность представления чисел с плавающей точкой, чем это предусмотрено стандартом языка компилируемой программы. Благодаря этому выдерживается более высокая точность представления чисел, чем позволяет оперирование числами с сохранением их в памяти машины.
По умолчанию действует обратная опция -спо-11оас-вс ого, разрешающая использование общих регистров. Этот флаг будет действительно полезен только если ваша программа должна соответствовать требованиям стандарта 1ЕЕЕ по точности вычислений с плавающей точкой. -Ног-всоре По умолчанию действуют установки, соответствующие применяемому стандарту языка. Эта опция определяет область видимости переменных, которые объявляются в разделе инициализации оператора цикла аког.
5 16 Часть (и. Приложения Указание опции -итог-в соре ограничивает видимость этих переменных областью тела цикла. Применение опции -гпо-тот-всоре ограничивает область видимости переменных цикла от места их объявления до точки закрытия блока кода, который содержит оператор Сот. Следующий пример будет при этой опции компилироваться без сообщения об ошибке: $1псзи<те <вс((1с.н> 1пе ваап (1пе атдс,сьат *атдч()) ( Гог(ьпт 1=0! 1<10г 1++) ( рг1псг("воср спе <ьЗФ",1)г ) ртьпси [ "оис ст 1оор и<(хп",1) г тегптп(0)г -ФЕогсе-а(Ыг Для выполнения арифметических операций с адресом, он должен быть скопирован в регистр. Эта опция обычно несколько ускоряет работу программы, потому что требуемый адрес зачастую уже находится в регистре, благодаря этому отпадает необходимость его повторной загрузки.
По умолчанию применяется обратная опция -гпс-сотое-а<Ыг. См. также -гтогсе-вевь -Ногсе-с1аивев-агсЬ(че-сЬесМ 3ача Опция включает принудительную проверку присутствия в файле класса з ача . 1апд. о)ззеос атрибута, указывающего на компиляцию этого класса компилятором О)Ч(). Этот атрибут имеет нулевую длину и имя дпи. де 5 .
дс3 -согар11еб. Атрибут будет проверяться во всех случаях, кроме компиляции в байт-код Виртуальной Машины )ача. -Ногсе-п)егп Все значения для выполнения над ними арифметических операций должны предварительно быть скопированы в регистры. Эта опция несколько ускоряет работу программы, потому что требуемые значения часто уже находятся в регистрах и в таком случае отпадает необходимость их повторной загрузки. Этот флаг устанавливается автоматически при использовании опций -о2, -оз и -ов, но может при необходимости быть отключен применением обратной опции -тпо-т отсе-гиеиь См. также опцию -т гогов-аббг.
-Ногггап-Ьо((пдв-сЬесМ ЕогТгап Вызывает генерирование дополнительного кода, который во время выполнения программы проверяет индексы массивов и обращений к подстрокам переменных типа сндндстнн на их соответствие допустимому диапазону между объявленными минимальным и максимальным значениями индекса. Имеет то же значение, что и опция -с)зоип<зв-с)тес)с.
-Нгее-Фоггп Приложение Г. Опции командной строки компилятора ОСС 5 17 Еог1гап Указывает, что исходный код программы имеет свободный формат, наподобие применяемого для стандарта Гогггап 90. Эта опция равносильна -хпо-кххекг-когш. -Нгеев1апд!пя С Сообшает компилятору, что вырабатываемая им программа должна выполняться в отдельной среде окружения (Ггеезтапейпя епчгопшепт). При этом она может не иметь доступа к стандартной системной библиотеке и ее выполнение не обязательно должно начинаться с функции таа1п ( ) . Эта опция автоматически устанавливает опцию -кпо-Ьих1охп.
Применение этой опции использованию опции -аппо-повсеб. -Нипсбоп-све Действует по умолчанию. Вызовы функций выполняются с записью адреса функции в регистр. Прн использовании обратной опции -кпо-кипссзоп-све подразумевается, что каждый оператор, выполняющий вызов функции, должен содержать адрес вызываемой функции, Применяемое по умолчанию значение этого флага позволяет вырабатывать более эффективный код. См.
также опцию --рахаль -Нипсбоп-весбом По этой опции компилятор в ассемблерном выходе размещает каждую функцию в собственном именованном разделе. Название каждого такого раздела наследует имя соответствующей функции. Это дает преимущество только на тех машинах, которые имеют компоновщик, поддерживающий секционирование кода для оптимизации выделения памяти. Для применения такой же оптимизации по отношению к данным см, опцию -Сбаеа-весе1опв.
При установке опции -сгипссзоп-вессхопв для машины, не поддерживающей секционирование выделения памяти, будет выдано предупредительное сообщение и эта опция будет игнорирована, Даже на тех машинах, которые поддерживают секционирование, применение этой опции может не дать никакого преимущества, несмотря на возможность оптимизации компоновщиком. На деле такой подход может давать несбалансированный эффект из-за большего объема и медленной загрузки выполняемого объектного кода.
Эта опция не действует при установке опции -р для выполнения профилирования. Из-за реорганизации кода возможны проблемы при использовании -ссцпссхоп-вессзопв совместно с опцией -д, как и вообще при любой отладке. См. также раздел главы 4 "Атрибуты". г9све Выполняет оптимизацию СБЕ исключения общих глобальных подвыражений. Эта опция может полностью разупорядочить код в случае применения в программе опе- 5 1 8 Часть Пг. приложения раторов досо с вычисляемыми адресами.