Clang Static Analyzer找不到最基本的问题

Cod*_*key 7 c static-analysis llvm clang clang-static-analyzer

我想尝试一下clang静态分析仪.我在Windows上并使用Visual Studio构建了clang.它似乎工作,但同时它似乎是非常无用的.

我做了一个示例文件

example.c

int main(void) 
{
    int h = 0;
    return 1/h;
}
Run Code Online (Sandbox Code Playgroud)

调用scan-build gcc -c example.c没有发现错误.

example.c

int main(void) 
{
    int h;
    return 1/h;
}
Run Code Online (Sandbox Code Playgroud)

调用scan-build gcc -c example.c没有发现错误.

example.c

int main(void) 
{
    return 1/0;
}
Run Code Online (Sandbox Code Playgroud)

调用scan-build gcc -c example.c没有发现错误.

如果找不到这些最基本的错误(并且可以通过clang本身找到它们),静态分析仪如何才能使用?

gcc如果重要的话,我是MinGW.我也试过替代,clang但没有发生任何事情.

我在这里做错了吗?

Dan*_*Niu 1

驱动程序scan-build在进行分析时会用“拦截”命令代替编译器,因此您需要确保使用“变量”作为编译器的名称。

例如,在 POSIX shell 中:scan-build sh -c '${CC} "$@"' cc main.c -o main.

PowerShell 可能有类似的语法,但我不确定,DOS 命令行将需要完全不同的东西。