相关疑难解决方法(0)

在clang中,您如何使用每个函数的优化属性?

我正在尝试编译一个没有使用优化的特定函数,clang以防止某些与安全相关的调用memset()被优化掉.

根据可在此处找到的文档,存在optnone允许此属性的属性.此外,这里可以找到一个例子.

不幸的是,(至少在clangOS X 10.9.5 的下面版本中),这会导致编译器警告,如本示例所示:

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

$ cat optnone.c
#include <string.h>

__attribute__((optnone)) void*
always_memset(void *b, int c, size_t len)
{
    return memset(b, c, len);
}

$ clang -Wall -O3 -c -o optnone.o optnone.c
optnone.c:3:16: warning: unknown attribute 'optnone' ignored [-Wattributes]
__attribute__((optnone)) void*
               ^
1 warning generated.
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用#pragma clang optimize off …

c clang compiler-optimization

11
推荐指数
2
解决办法
1万
查看次数

标签 统计

c ×1

clang ×1

compiler-optimization ×1