无法通过编译指示禁用LLVM优化

我有一个崩溃的代码块,除非我优化closures。 我正在用LLVM编译器2.0构build

我想通过用#pragma编译器指令包装有问题的代码来closures优化; 或者closures整个文件的优化。

我一直在叮铛声手册和代码; 但是没有任何东西会跳出来。

有谁知道如何改变单个CU的优化(而不是整个应用程序)?

你可以在Xcode中设置每个文件的编译器标志。 在Xcode 4中(我假设您使用的是LLVM 2.0参考),首先在左侧项目浏览器中select项目。 转到“构build阶段”选项卡并展开“编译源”构build阶段。

在那里,你可以设置每个文件的编译器标志,所以你可以尝试去违规的文件,并input-O0作为标志来尝试和禁用该文件的优化。

GCC有一些你可以为此设定的属性,正如约翰内斯在他的回答中指出的那样,但这些属性可能不在LLVM中。 另外,从那里的评论看来,这些甚至不在苹果定制的用于构buildiOS应用程序的GCC中。