叮当的问题 --分析

Issue with clang --analyze

本文关键字:--分析 问题 叮当      更新时间:2023-10-16

美好的一天。

我正在尝试使用 clang --analyze 运行静态分析。我的制作文件中的CFLAGS很长。

CFLAGS= -I$(RESOURCES)  -I$(IMPORTED_HEADERS) -I$(EXPORTED_HEADERS)  -isystem$(ATL_MFC_INCLUDE) -isystem$(SDK7INCLUDE) -isystem$(VCINCLUDE) -ferror-limit=0 -std=c++14 -fsyntax-only -Wmicrosoft -fms-extensions -fms-compatibility -Wno-microsoft-extra-qualification -Wno-non-pod-varargs -Wno-microsoft-cast -Wno-invalid-token-paste -Wno-inconsistent-dllimport -D_ATL_NO_HOSTING -DUNICODE -D_UNICODE -DWIN32 -D_DEBUG -DDEBUG

无论我试图坚持在哪里 - 分析,在最开始或最后,我都会得到这个警告:

clang.exe: warning: argument unused during compilation: '--analyze' [-Wunused-command-line-argument]

然而,当编译一个琐碎的 cpp 文件时,静态分析就会启动,例如

#include <string.h>
int main(int, char**)
{
    strcpy(NULL, "Hello");
    return 0;   
}

是叮当声的虫子吗?还是我做错了什么?

这可能是因为命令行中有-fsyntax-only

-fsyntax-only指示编译器检查代码是否存在语法错误,然后退出,而不继续编译。

通过移除该标志,--analyze应该启动。