如何摆脱V677:自定义声明标准类型警告



我们将PVS Studio(开源项目的免费变体(与travis-ci结合使用,由于某种原因,它会为位于/usr/local/clang-3.5.0/lib/clang/3.5.0/include中的文件生成错误:

/usr/local/clang-3.5.0/
lib/clang/3.5.0/include/stddef.h:58:1: 警告: V677 标准"size_t"类型的自定义声明。应改用来自系统头文件的声明。/usr/local/clang-3.5.0/lib/clang/3.5.0/include/stddef.h:86:1: 警告: V677 标准"wchar_t"类型的自定义声明。应改用来自系统头文件的声明。/usr/local/clang-3.5.0/lib/clang/3.5.0/include/stdarg.h:30:1: 警告: V677 标准"va_list"类型的自定义声明。应改用来自系统头文件的声明。/usr/local/clang-3.5.0/lib/clang/3.5.0/include/stddef.h:47:1: 警告: V677 标准"ptrdiff_t"类型的自定义声明。应改用来自系统头文件的声明。

这个位置看起来像非标准编译器的"系统"标头的示例,并且远离项目根目录(AFAIR 位于/home:标准 travis 位置的某个地方(。脚本运行使用 https://www.viva64.com/en/pvs-studio-download-linux/的最新版本,最新版本在"星期一 7 月 3 日 20:13:42 UTC 2017"运行(不幸的是,使用的版本未保存(。

如果编译器位于某个不寻常的位置,建议向分析器异常添加新路径,以便只能在报告中看到自己项目代码的警告。

pvs-studio-analyzer analyze ... -e /path/to/exclude-path ...

pvs-studio ... --exclude-path /path/to/exclude-path ...

如果将 clang 更新到 clang-4.0,PVS 似乎不会检测到错误。

最新更新