C++ checkers | Rule |
---|
| ARR01-CPP. Do not apply the sizeof operator to a pointer when taking the size of an array |
| ARR30-CPP. Guarantee that array and vector indices are within the valid range |
| DCL01-CPP. Do not reuse variable names in subscopes |
| DCL04-CPP. Do not declare more than one variable per declaration |
| DCL06-CPP. Use meaningful symbolic constants to represent literal values in program logic |
| DCL36-CPP. Do not declare an identifier with conflicting linkage classifications |
| EXP00-CPP. Use parentheses for precedence of operation |
| EXP06-CPP. Operands to the sizeof operator should not contain side effects |
| EXP19-CPP. Do not perform assignments in conditional expressions |
| EXP35-CPP. Do not cast away a const qualification |
| EXP36-CPP. Do not convert pointers into more strictly aligned pointer types |
| FLP30-CPP. Do not use floating point variables as loop counters |
| INT07-CPP. Use only explicitly signed or unsigned char type for numeric values |
| INT09-CPP. Ensure enumeration constants map to unique values |
| INT13-CPP. Use bitwise operators only on unsigned operands |
| MEM02-CPP. Immediately cast the result of a memory allocation function call into a pointer to the allocated type |
| MSC04-CPP. Use comments consistently and in a readable fashion |
| MSC12-CPP. Detect and remove code that has no effect |
| MSC30-CPP. Do not use the rand() function for generating pseudorandom numbers |
| PRE01-CPP. Use parentheses within macros around parameter names |
| PRE02-CPP. Macro replacement lists should be parenthesized |
| PRE03-CPP. Prefer typedefs to defines for encoding types |
| PRE04-CPP. Do not reuse a standard header file name |
| PRE06-CPP. Enclose header files in an inclusion guard |
| PRE07-CPP. Avoid using repeated question marks |
| PRE31-CPP. Avoid side-effects in arguments to unsafe macros |
| STR34-CPP. Cast characters to unsigned types before converting to larger integer sizes |