我正在尝试编译一个没有任何优化的特定函数。我在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