Checker Playground
We selected ten classic rules and generated code checkers for them. Choose a rule to quickly browse the generated results.
Choose a curated rule and use precomputed results to replay the complete generation flow from rule to checker.
Choose one of the predefined cases to preview its rule definition and tests.
Prohibits anonymous structs and unions nested directly inside struct definitions.
Prohibits calling multiple data-dependent functions in the same expression.
Requires parentheses when arithmetic or bitwise operations are mixed with comparisons.
Prohibits assignment expressions inside conditional logic.
Requires a final `else` branch in `if` / `else if` chains.
Prohibits local variables or parameters that reuse the name of a global variable.
Prohibits assigning floating-point values to integer variables without an explicit cast.
Requires `for` loop control variables to be local variables.
Requires pointers to be reset to null immediately after `free`, `delete`, or `delete[]`.
Requires dynamically allocated pointers to be null-checked before first use.
Describe the rule clearly and support it with representative compliant and non-compliant cases.
Use a concise, clear name to label the rule.
Explain what should be detected.
Safe code that should not trigger the checker.
Unsafe code that should be detected by the checker.