问题标签 [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.
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?
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-tidy
从Developer Command Prompt for VS2015
. 到目前为止,我不确定这是否需要?
任何想法...如何解决问题,如何调试包含路径参数的评估,...?
c++ - 什么是正确的 LLVM 标头保护样式?
在 clang tidy 中,检查[llvm-header-guard]查找 LLVM 样式的标头保护,但我找不到任何适当的 LLVM 标头保护样式的示例,特别是给定义的名称结构、编码标准页面没有提及任何事情。
clang - Clang-Tidy 更改 c 文件的签名,但不更改关联的标头
我有这个c文件
并且相关的标题只包含一行
这使用 clang 编译。
如果我现在使用 clang-tidy (clang-tidy -fix pointer.c -checks=* -header-filter=.* ) 我得到以下结果
和标题
函数的签名已从 (int i) 更改为 (const int i),这很好。头文件也已更改(保护),但签名保持不变。因此。代码不再编译。
我的 compile_commands.json 看起来像这样
这是一个整洁的错误还是我做错了?谢谢你的帮助?
最好的问候,乔治
c++ - 忽略 clang-tidy 中的系统头文件
tldr;> 如何在 clang-tidy 中隐藏来自系统标头的警告?
我有以下最小示例源文件,它在系统标头中触发了一个整洁的警告:
在 Ubuntu 17.04 上使用 clang-tidy 4.0.0 使用 libstdc++ 7.0.1 调用它:
产量
我想在系统标题中隐藏警告。我尝试了以下方法:
但警告仍然显示。
c++ - 处理“抛出的异常类型不可复制构造”警告
在中断 12 年之后回到 C++ 开发。我正在使用 JetBrains 的 CLion 软件,它非常棒,因为它为我的课堂设计中可能出现的问题提供了很多输入。我在班级的构造函数 throw 语句中收到的警告之一是:Thrown exception type is not nothrow copy constructible
. 以下是生成此警告的代码示例:
这段代码可以编译,我可以对其进行单元测试。但我非常想摆脱这个警告(为了理解我做错了什么,即使它编译)。
visual-c++ - 如何将 clang-tidy 与 CMake 集成(_CLANG_TIDY) 和 MSVC?
如何传递clang
标志,例如-fms-compatibility-version
使用<LANG>_CLANG_TIDY
CMake 属性?在 CLI 上,这很容易:
但是对于 CMake,这不能按预期工作:
该标志是clang
使用现代版本的 MSVC 所必需的。
如果这是不可能的;有没有其他方法可以集成 CMake+MSVC+clang-tidy(除了创建自定义构建目标)?
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 给定一些静态可推导的逻辑错误。
提前致谢!
c++ - Clion 未初始化的记录类型:播放器
几周前我开始学习 C++。我现在看到类和所有东西,我想知道对象实例化。在这段代码中:
如果我不将大括号放入Player player {}
. 我使用 Clion 2017.2.3。警告说:“未初始化的记录类型:播放器”并且似乎来自Clang-Tidy,但我不确定它的真正作用。
那么,这很重要吗?我是否必须在对象实例化中放置大括号?
请原谅我的错误,英语不是我的母语。