问题标签 [clang-tidy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
854 浏览

batch-file - 使用 CMake 批量评估 ninja clang-tidy 的返回值

我正在使用 CMake 3.6 生成 ninja 1.6.0 配置,使用 clang-tidy(LLVM 版本 3.9.1)编译和静态分析我的代码:

.clang-tidy 文件:

构建.bat:

我得到的输出是:

96 warnings treated as errors ninja: build stopped: subcommand failed.

%errorlevel%0,虽然 ninja 明确表示子命令失败。这个变量很重要,因为它由构建服务器评估并将构建标记为失败。

我该怎么做才能%errorlevel%正确设置为!= 0?

0 投票
2 回答
4079 浏览

windows - 使用 MSVC2015 在 Windows 上进行 clang-tidy

我尝试clang-tidy在 Windows 上使用 - 到目前为止还没有成功。

作为先决条件,我已经安装了LLVM 3.9.1

我的普通编译器是MSVC 2015,我的构建系统是QBS 1.7.2。使用我已经生成的 QBS compile_commands.json。当然,该文件包含 MSVC 2015cl.exe标志/参数。以下是显示一个文件条目的摘录:

切换到作业/项目文件夹C:/some_ci_job_folder/并运行

给我以下警告和一个错误:

知道为什么clang-tidy不能cl正确解释选项(默认情况下)吗?

好的,在谷歌搜索后,我发现添加--driver-mode=cl可能会有所改善。但

仍然给我

所以它不再抱怨包含路径参数,但据我所知,这些参数只是被忽略了吗?

顺便说一句:我clang-tidyDeveloper Command Prompt for VS2015. 到目前为止,我不确定这是否需要?

任何想法...如何解决问题,如何调试包含路径参数的评估,...?

0 投票
3 回答
7294 浏览

c++ - 什么是正确的 LLVM 标头保护样式?

在 clang tidy 中,检查[llvm-header-guard]查找 LLVM 样式的标头保护,但我找不到任何适当的 LLVM 标头保护样式的示例,特别是给定义的名称结构、编码标准页面没有提及任何事情。

0 投票
1 回答
231 浏览

clang - Clang-Tidy 更改 c 文件的签名,但不更改关联的标头

我有这个c文件

并且相关的标题只包含一行

这使用 clang 编译。

如果我现在使用 clang-tidy (clang-tidy -fix pointer.c -checks=* -header-filter=.* ) 我得到以下结果

和标题

函数的签名已从 (int i) 更改为 (const int i),这很好。头文件也已更改(保护),但签名保持不变。因此。代码不再编译。

我的 compile_commands.json 看起来像这样

这是一个整洁的错误还是我做错了?谢谢你的帮助?

最好的问候,乔治

0 投票
3 回答
14434 浏览

c++ - 忽略 clang-tidy 中的系统头文件

tldr;> 如何在 clang-tidy 中隐藏来自系统标头的警告?

我有以下最小示例源文件,它在系统标头中触发了一个整洁的警告:

在 Ubuntu 17.04 上使用 clang-tidy 4.0.0 使用 libstdc++ 7.0.1 调用它:

产量

我想在系统标题中隐藏警告。我尝试了以下方法:

但警告仍然显示。

0 投票
1 回答
6391 浏览

c++ - 处理“抛出的异常类型不可复制构造”警告

在中断 12 年之后回到 C++ 开发。我正在使用 JetBrains 的 CLion 软件,它非常棒,因为它为我的课堂设计中可能出现的问题提供了很多输入。我在班级的构造函数 throw 语句中收到的警告之一是:Thrown exception type is not nothrow copy constructible. 以下是生成此警告的代码示例:

这段代码可以编译,我可以对其进行单元测试。但我非常想摆脱这个警告(为了理解我做错了什么,即使它编译)。

0 投票
3 回答
2456 浏览

visual-c++ - 如何将 clang-tidy 与 CMake 集成(_CLANG_TIDY) 和 MSVC?

如何传递clang标志,例如-fms-compatibility-version使用<LANG>_CLANG_TIDYCMake 属性?在 CLI 上,这很容易:

但是对于 CMake,这不能按预期工作:

该标志是clang使用现代版本的 MSVC 所必需的。

如果这是不可能的;有没有其他方法可以集成 CMake+MSVC+clang-tidy(除了创建自定义构建目标)?

0 投票
1 回答
350 浏览

c++ - 让clang-tidy发现一个静态可推导的逻辑错误

我不知道我想要的是否可能,但我还是想问问它。

我有一些 Boost 库代码,我想提示 clang-tidy 发出警告,通过静态分析,由于逻辑错误,可能会发生未定义行为的明确实例。https://akrzemi1.wordpress.com/2016/12/12/concealing-bugs/建议__builtin_unreachable()可能会像这样绊倒,但我没能做到(尽管它很好地绊倒了 UB 消毒剂) :

在上面的代码中,静态分析器可以清楚地知道__builtin_unreachable()必须调用它。我想让 clang-tidy 报告这个,但clang-tidy-5.0 -checks=* -header-filter=.* temp.cpp -- -std=c++17什么也没报告。

注意我不需要使用__builtin_unreachable(),这正是 Andrzej 的 C++ 博客所建议的。任何获得 clang 静态分析器或 MSVC 静态分析器或理想的 clang-tidy 的技术来推断 UB 何时必须通过静态推断明显发生并在编译时标记它是我正在寻找的。

我不寻找的是一个在静态分析期间总是触发警告的构造,而不管用例如何。我只希望仅通过静态分析时出现静态分析警告,很明显在编译时可以调用 UB 给定一些静态可推导的逻辑错误。

提前致谢!

0 投票
3 回答
3239 浏览

c++ - clang-tidy 报告未知警告

0 投票
1 回答
5654 浏览

c++ - Clion 未初始化的记录类型:播放器

几周前我开始学习 C++。我现在看到类和所有东西,我想知道对象实例化。在这段代码中:

如果我不将大括号放入Player player {}. 我使用 Clion 2017.2.3。警告说:“未初始化的记录类型:播放器”并且似乎来自Clang-Tidy,但我不确定它的真正作用。

那么,这很重要吗?我是否必须在对象实例化中放置大括号?

请原谅我的错误,英语不是我的母语。