List of C/C++ inspections
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. | Warning |
Constant function result | Detects functions whose return value is always equal to the same constant. | Warning |
Constant parameter | Detects functions where a parameter is always equal to the same constant. | Warning |
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. | Warning |
Endless loop | Detects the | Warning |
Infinite recursion | Detects when a function produces infinite recursion. | Warning |
Local value escapes scope | Reports the references to local values that escape the function. | Warning |
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, | Warning |
Memory leak | Reports memory allocations (either the For more information, refer to Inspection: Memory leak. | Warning |
Not initialized field | Reports the fields that may not have been initialized before usage, including the cases when initialization and usage take place in different functions. | Warning |
Null dereference | Detects dereferences of pointers that may contain the | Warning |
Unreachable calls of function | Detects functions whose call sites are never executed. | Warning |
Unreachable code | Detects the code that is never executed (dead code). | Warning |
Unused local variable | Detects the variables that are declared but not used and never accessed for reading. | Warning |
Unused parameter | Detects the parameters that are declared but not used and never accessed for reading. | Warning |
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 | Warning |
Functions
Inspection | Description | Default Severity |
---|---|---|
Hiding non-virtual function | Reports when a function hides non-virtual functions with the same signature from the base class. | Warning |
Not implemented functions | Detects when a function is declared but not defined. | Warning |
General
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. | Warning |
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 . | |
Empty declaration or statement | Reports the redundant empty declarations and statements that can be safely removed. | Warning |
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 | Warning |
Simplifiable statement | Suggests to simplify the following types of statements:
| Warning |
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 | Warning |
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. | Warning |
Static Analysis Tools
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. | Warning |
Clazy | Performs Qt-related clazy checks. | Warning |
MISRA checks | Performs the checks defined by the MISRA guidelines C2012 and C++2008. 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 | Warning |
Unused code
Inspection | Description | Default Severity |
---|---|---|
Unused concepts | Detects C++ concepts that are never used. | Warning |
Unused global declaration | Detects when a global function or variable is declared but never accessed or written. | Warning |
Unused include directive | Reports the unused or unrequired For more information, refer to Inspection: Unused include directive. | Warning |
Unused macro | Detects macro definitions that are never used in the code. | Warning |
Unused struct | Detects C/C++ classes and structures that are never used. | Warning |
Unused template parameter | Detects C++ class and function template parameters that are never used. | Warning |
Unused type alias | Reports |