我正在尝试测试标志
-fsanitize-address-outline-instrumentation
是否适用于 LLVM Clang 编译器。
Ubuntu clang version 15.0.7
我创建了一个示例程序:
main.c
#include "stdio.h"
static inline void printFunc(void)
{
printf("Test string \r\n");
}
int main(void)
{
printFunc();
return 0;
}
我想验证
printFunc
是否会内联,具体取决于是否添加 -fsanitize-address-outline-instrumentation
编译标志。当我尝试编译文件时,编译器在编译期间返回:
lukasz@lp:/tmp/test$ clang main.c -o main -fsanitize-address-outline-instrumentation
clang: warning: argument unused during compilation: '-fsanitize-address-outline-instrumentation' [-Wunused-command-line-argument]
我不明白为什么参数被忽略。
它不起作用的原因是因为我也没有添加
-fsanitize=address
。因此,当使用 -fsanitize=address -fsanitize-address-outline-instrumentation
编译时,它可以工作 - 生成的二进制文件具有不同的大小。