微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何仅通过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进行了测试。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。