Проблема с отключением оптимизации LLVM через прагму - PullRequest
8 голосов
/ 11 апреля 2011

У меня есть кусок кода, который вылетает, если я не строю с отключенной оптимизацией. Я строю с LLVM компилятором 2.0

Я бы хотел отключить оптимизацию, обернув нарушающий код директивой компилятора #pragma; или отключите оптимизацию для всего файла.

Я копался в руководстве и коде clang; но ничего не выскакивает на меня.

Кто-нибудь знает, как изменить оптимизации для одного CU (в отличие от всего приложения)?

1 Ответ

15 голосов
/ 11 апреля 2011

Вы можете установить флаги компилятора для каждого файла в XCode.В Xcode 4 (который я предполагаю, что вы используете из-за ссылки LLVM 2.0), сначала выберите проект в браузере проекта слева.Перейдите на вкладку «Фазы сборки» и разверните фазу сборки «Исходники компиляции».

Здесь вы можете установить флаги компилятора для каждого файла, чтобы вы могли попытаться перейти к файлу-нарушителю и ввести -O0 в качестве флага, чтобы попытаться отключить оптимизацию только для этого файла.

У GCC есть некоторые атрибуты, которые вы можете установить для этого, как отметил Йоханнес в его ответе здесь , но они могут отсутствовать в LLVM.Кроме того, из комментариев видно, что они даже не в настроенном GCC от Apple, используемом для создания приложений для iOS.

...