如何仅通过CLANG检查一位检查员?

问题描述

如何仅通过CLANG检查一位检查员?

当我使用clang检查警告时,我使用这种方式

# clang --analyze *.c

我只想使用一个检查器

ex)内核。仅DivideZero(C,C ++,ObjC)

请告诉我一些选择!

解决方法

要使用clang --analyze运行单个检查器,请将--analyzer-no-default-checks -Xanalyzer -analyzer-checker=<checker>添加到命令行。例如:

$ clang --analyze --analyzer-no-default-checks -Xanalyzer -analyzer-checker=core.DivideZero hello.c
hello.c:44:12: warning: Division by zero
  return 6 / z;
         ~~^~~
1 warning generated.

在这种情况下,hello.c包含三种默认会报告的各种缺陷,但是通过仅启用core.DivideZero,只会报告一个缺陷。引发此报告的代码片段为:

int divide_by_zero()
{
  int z = 0;
  return 6 / z;
}

我主要是通过查看Clang Command Line Argument Reference来弄清楚如何运行单个检查程序的,但这还不是很清楚,因此也需要一些试验和错误。 clang程序是一种多功能前端,可以在后台调用其他工具,因此可以使用正确的-X-和{ --前缀有点挑战。

Available Checkers的列表也很有用,其中包括诸如core.DivideZero之类的名称。

我在Linux / x86_64上使用clang + llvm版本3.7.1和8.0.1进行了测试。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...