List of C/C++ inspections
Settings | Editor | Inspections - C/C++
note
For more information, refer to Data flow analysis
Inspection | Description | Default Severity |
---|---|---|
Constant condition | Analyzes method control and data flow to report conditions that are always true or false and expressions with statically constant values.
| |
Constant function result | Detects functions whose return value is always equal to the same constant.
| |
Constant parameter | Detects functions where a parameter is always equal to the same constant.
| |
Dangling pointer | Detects pointers that point to invalid data, typical cases are double-free and use-after-free problems. Check out this parent ticket for the list of limitations.
| |
Endless loop | Detects the
| |
Infinite recursion | Detects when a function produces infinite recursion.
| |
Local value escapes scope | Detects variables that reference local values that escape their scope.
| |
Loop condition isn't updated inside the loop | Detects situations where a loop condition is not updated inside the loop, which can cause an infinite loop. There is a similar inspection in Clang-Tidy, | |
Null dereference | Detects dereferences of pointers that may contain the
| |
Unreachable calls of function | Detects functions whose call sites are never executed.
| |
Unreachable code | Detects the code that is never executed (dead code).
| |
Unused local variable | Detects the variables that are declared but not used and never accessed for reading. | |
Unused parameter | Detects the parameters that are declared but not used and never accessed for reading. | |
Unused value | Reports the cases when the value of a variable is never used after the assignment.
Clear the Warn about unused variable initializers checkbox to disable the inspection for default variable initializers (for example, if you prefer to assign ![]() | |
Inspection | Description | Default Severity |
---|---|---|
Hiding non-virtual function | Reports when a function hides non-virtual functions with the same signature from the base class. | |
Not implemented functions | Detects when a function is declared but not defined. | |
Inspection | Description | Default Severity |
---|---|---|
Argument selection defect | Compares the names of arguments in a call and formal parameter names in the declaration to detect the errors like accidental switching of the arguments. For more information, refer to Inspection: Argument selection defects. | |
Clangd errors and warnings | Reports errors and warnings from Clangd. This inspection works in the editor as you type, and you can also get a summary of the results when running inspections manually using Code | Inspect Code. | |
Empty declaration or statement | Reports the redundant empty declarations and statements that can be safely removed. | |
Inconsistent Naming | Reports when a symbol violates the currently selected naming convention. Find more details in Inspecting code for violations of the naming rules. | |
Preprocessor directive comment | Finds cases where a preprocessor | |
Simplifiable statement | Suggests to simplify the following types of statements:
| |
Unconstrained variable type | Suggests constraining local variables declared as This inspection is disabled by default on Windows and is not supported for concepts declared with the | |
Virtual call from constructor or destructor | Reports when a virtual function is called from a constructor or destructor, helping to prevent situations when virtual functions access the resources that are not yet initialized or have already been destroyed. | |
Inspection | Description | Default Severity |
---|---|---|
Clang-Tidy | Performs various clang-tidy checks related to C++ Core Guidelines, code modernization, readability, and performance issues. For more information, refer to Clang-Tidy integration. | |
Clazy | Performs Qt-related clazy checks. | |
MISRA checks | Performs the checks defined by the MISRA C 2012 and MISRA C++ 2008 guidelines. See the list of currently supported checks. You can adjust the list of checks in the Options section: ![]() Note that on Windows with MSVC (including the case of clang-cl), CLion shows only the MISRA C++ checks. MISRA C checks can't be shown correctly because they apply to a specific language standard configurable via the
| |
Inspection | Description | Default Severity |
---|---|---|
Unused concepts | Detects C++ concepts that are never used. | |
Unused global declaration | Detects when a global function or variable is declared but never accessed or written. | |
Unused include directive | Reports the unused or unrequired For more information, refer to Inspection: Unused include directive. | |
Unused macro | Detects macro definitions that are never used in the code. | |
Unused struct | Detects C/C++ classes and structures that are never used. | |
Unused template parameter | Detects C++ class and function template parameters that are never used. | |
Unused type alias | Reports |
Thanks for your feedback!