CLion 2025.2 Help

C/C++ 检查列表

数据流分析

检查

描述

默认严重性

常量条件

分析方法控制和数据流,以报告始终为真或假的条件以及具有静态常量值的表达式。

警告 警告

常量函数结果

检测返回值始终等于相同常量的函数。

警告 警告

常量参数

检测参数始终等于相同常量的函数。

警告 警告

悬空指针

检测指向无效数据的指针,典型情况包括 双重释放释放后使用 问题。 查看此 父任务单 以获取限制列表。

警告 警告

无限循环

检测 forwhilegoto 语句,这些语句只能通过抛出异常来中断。

警告 警告

无限递归

检测函数产生无限递归的情况。

警告 警告

局部值逃逸作用域

报告逃逸出函数的局部值引用。

警告 警告

循环条件未在循环内更新

检测循环条件未在循环内更新的情况,这可能导致无限循环。

Clang-Tidy 中有类似的检查, clang-tidy:bugprone-infinite-loop。 然而,它不涵盖具有退出点的循环,并且在包含 lambda 或引用的情况下会产生误报。 此检查在 CLion 的 默认 Clang-Tidy 配置文件 中被禁用。

警告 警告

内存泄漏

报告未在变得不可访问之前释放的内存分配(无论是 new 操作符还是 malloc() 函数)。

有关详细信息,请参阅 检查:内存泄漏

警告 警告

未初始化字段

报告在使用前可能未初始化的字段,包括初始化和使用发生在不同函数中的情况。

警告 警告

空指针解引用

检测可能包含 nullptr 的指针的解引用。

警告 警告

不可达函数调用

检测从未执行的函数调用点。

警告 警告

不可达代码

检测从未执行的代码(死代码)。

警告 警告

未使用的局部变量

检测已声明但未使用且从未被读取的变量。

警告 警告

未使用的参数

检测已声明但未使用且从未被读取的参数。

警告 警告

未使用的值

报告变量赋值后从未使用的情况。

取消选中 警告未使用的变量初始化器 复选框以禁用对默认变量初始化器的检查(例如,如果您更喜欢将 nullptr 分配给指针类型的变量)。

未使用值检查设置

警告 警告

函数

检查

描述

默认严重性

隐藏非虚函数

报告函数隐藏来自基类的具有相同签名的非虚函数的情况。

警告 警告

未实现的函数

检测声明但未定义的函数。

警告 警告

常规

检查

描述

默认严重性

参数选择缺陷

比较调用中的参数名称和声明中的形式参数名称,以检测诸如参数意外交换之类的错误。

有关更多信息,请参见 检查:参数选择缺陷

警告 警告

Clangd 错误和警告

报告来自 Clangd 的错误和警告。 此检查在您输入时在编辑器中工作,您还可以在 手动运行检查 时使用 代码 | 检查代码 获取结果摘要。

空声明或语句

报告可以安全删除的冗余空声明和语句。

警告 警告

命名不一致

报告符号违反当前选择的命名约定的情况。

检查命名规则违规的代码 中查找更多详细信息。

已禁用

预处理器指令注释

查找预处理器 #endif 注释与宏名称不匹配的情况。

警告 警告

可简化的语句

建议简化以下类型的语句:

  • condition == true

  • condition1? true : condition2

  • if(condition1) return true; return condition2;

  • 相同分支的语句

  • """ if(true)while(false) """

警告 警告

无约束的变量类型

建议约束声明为 auto 的局部变量,如果将受约束表达式或函数调用的结果分配给它们。

此检查在 Windows 上默认禁用,并且不支持使用 conceptsrequires 子句语法声明的内容。

警告 警告

从构造函数或析构函数调用虚函数

报告从构造函数或析构函数调用虚函数的情况,以帮助防止虚函数访问尚未初始化或已被销毁的资源的情况。

警告 警告

静态分析工具

检查

描述

默认严重性

Clang-Tidy

执行与 C++ 核心准则、代码现代化、可读性和性能问题相关的各种 clang-tidy 检查。

有关更多信息,请参见 Clang-Tidy 集成

警告 警告

Clazy

执行与 Qt 相关的 clazy 检查。

警告 警告

MISRA 检查

执行 MISRA 指南 C2012 和 C++2008 定义的检查。 请参阅 当前支持的检查列表

您可以在 选项 部分调整检查列表:

MISRA 检查设置

请注意,在 Windows with MSVC (包括 clang-cl 的情况)上,CLion 仅显示 MISRA C++ 检查。 MISRA C 检查无法正确显示,因为它们适用于通过 -std=cXY 标志配置的特定语言标准,而 MSVC 不支持该标志。

警告 警告

未使用代码

检查

描述

默认严重性

未使用的概念

检测从未使用的 C++ concepts

警告 警告

未使用的全局声明

检测声明但从未访问或写入的全局函数或变量。

警告 警告

未使用的 include 指令

报告未使用或不需要的 include 指令,这些指令可以安全删除。

欲了解更多信息,请参阅 检查:未使用的 include 指令

警告 警告

未使用的宏

检测代码中从未使用的宏定义。

警告 警告

未使用的结构

检测从未使用的 C/C++ 类和结构。

警告 警告

未使用的模板参数

检测从未使用的 C++ 类和函数模板参数。

警告 警告

未使用的类型别名

报告从未使用的 using 语句。

最后修改日期: 2025年 9月 26日