C/C++ 检查列表
数据流分析
检查 | 描述 | 默认严重性 |
|---|---|---|
常量条件 | 分析方法控制和数据流,以报告始终为真或假的条件以及具有静态常量值的表达式。 |
|
常量函数结果 | 检测返回值始终等于相同常量的函数。 |
|
常量参数 | 检测参数始终等于相同常量的函数。 |
|
悬空指针 | 检测指向无效数据的指针,典型情况包括 双重释放 和 释放后使用 问题。 查看此 父任务单 以获取限制列表。 |
|
无限循环 | 检测 |
|
无限递归 | 检测函数产生无限递归的情况。 |
|
局部值逃逸作用域 | 报告逃逸出函数的局部值引用。 |
|
循环条件未在循环内更新 | 检测循环条件未在循环内更新的情况,这可能导致无限循环。 在 Clang-Tidy 中有类似的检查, |
|
内存泄漏 | 报告未在变得不可访问之前释放的内存分配(无论是 有关详细信息,请参阅 检查:内存泄漏。 |
|
未初始化字段 | 报告在使用前可能未初始化的字段,包括初始化和使用发生在不同函数中的情况。 |
|
空指针解引用 | 检测可能包含 |
|
不可达函数调用 | 检测从未执行的函数调用点。 |
|
不可达代码 | 检测从未执行的代码(死代码)。 |
|
未使用的局部变量 | 检测已声明但未使用且从未被读取的变量。 |
|
未使用的参数 | 检测已声明但未使用且从未被读取的参数。 |
|
未使用的值 | 报告变量赋值后从未使用的情况。 取消选中 警告未使用的变量初始化器 复选框以禁用对默认变量初始化器的检查(例如,如果您更喜欢将 ![]() |
|
函数
检查 | 描述 | 默认严重性 |
|---|---|---|
隐藏非虚函数 | 报告函数隐藏来自基类的具有相同签名的非虚函数的情况。 |
|
未实现的函数 | 检测声明但未定义的函数。 |
|
常规
检查 | 描述 | 默认严重性 |
|---|---|---|
参数选择缺陷 | 比较调用中的参数名称和声明中的形式参数名称,以检测诸如参数意外交换之类的错误。 有关更多信息,请参见 检查:参数选择缺陷。 |
|
Clangd 错误和警告 | 报告来自 Clangd 的错误和警告。 此检查在您输入时在编辑器中工作,您还可以在 手动运行检查 时使用 获取结果摘要。 | |
空声明或语句 | 报告可以安全删除的冗余空声明和语句。 |
|
命名不一致 | 报告符号违反当前选择的命名约定的情况。 在 检查命名规则违规的代码 中查找更多详细信息。 | |
预处理器指令注释 | 查找预处理器 |
|
可简化的语句 | 建议简化以下类型的语句:
|
|
无约束的变量类型 | 建议约束声明为 此检查在 Windows 上默认禁用,并且不支持使用 concepts 和 |
|
从构造函数或析构函数调用虚函数 | 报告从构造函数或析构函数调用虚函数的情况,以帮助防止虚函数访问尚未初始化或已被销毁的资源的情况。 |
|
静态分析工具
检查 | 描述 | 默认严重性 |
|---|---|---|
Clang-Tidy | 执行与 C++ 核心准则、代码现代化、可读性和性能问题相关的各种 clang-tidy 检查。 有关更多信息,请参见 Clang-Tidy 集成。 |
|
Clazy | 执行与 Qt 相关的 clazy 检查。 |
|
MISRA 检查 | 执行 MISRA 指南 C2012 和 C++2008 定义的检查。 请参阅 当前支持的检查列表。 您可以在 选项 部分调整检查列表: ![]() 请注意,在 Windows with MSVC (包括 clang-cl 的情况)上,CLion 仅显示 MISRA C++ 检查。 MISRA C 检查无法正确显示,因为它们适用于通过 |
|
未使用代码
检查 | 描述 | 默认严重性 |
|---|---|---|
未使用的概念 | 检测从未使用的 C++ concepts。 |
|
未使用的全局声明 | 检测声明但从未访问或写入的全局函数或变量。 |
|
未使用的 include 指令 | 报告未使用或不需要的 欲了解更多信息,请参阅 检查:未使用的 include 指令。 |
|
未使用的宏 | 检测代码中从未使用的宏定义。 |
|
未使用的结构 | 检测从未使用的 C/C++ 类和结构。 |
|
未使用的模板参数 | 检测从未使用的 C++ 类和函数模板参数。 |
|
未使用的类型别名 | 报告从未使用的 |

