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 | Reports the references to local values that escape the function. |
|
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, |
|
Memory leak | Reports memory allocations (either the For more information, refer to Inspection: Memory leak. |
|
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. |
|
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 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
|
|
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!