首页 > 解决方案 > Clang 优化编译指示

问题描述

我正在尝试编译一个没有任何优化的特定函数。我正在使用clang这个--version输出:

Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin13.4.0
Thread model: posix

我试图用来#pragma clang optimize off关闭优化。这是我的代码示例:

#pragma clang optimize off

int main()
{
    int x = 777;
    x = 555;
    x = 888;
    x = 999;

    printf("%d\n", x);

    return 0;
}
#pragma clang optimize on

但是当我检查clang -S -O3冗余分配的输出时已经消失了。使用__attribute__(optnone)也不行。顺便说一句,当我在没有-O3选项的情况下进行编译时,冗余分配就在这里。

我究竟做错了什么?

UPD:-Wall使用给定编译

opt.c:13:15: warning: unknown pragma ignored [-Wunknown-pragmas]
#pragma clang optimize off

标签: cclang

解决方案


推荐阅读