Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

C++ checkers

Rule

 

ARR01-CPP. Do not apply the sizeof operator to a pointer when taking the size of an array

 

ARR02-CPP. Explicitly specify array bounds, even if implicitly defined by an initializer

 

ARR30-CPP. Guarantee that array and vector indices are within the valid range

 

DCL01-CPP. Do not reuse variable names in subscopes

 

DCL02-CPP. Use visually distinct identifiers

 

DCL06-CPP. Use meaningful symbolic constants to represent literal values in program logic

 

DCL13-CPP. Declare function parameters that are pointers to values not changed by the function as const

 

EXP06-CPP. Operands to the sizeof operator should not contain side effects

 

EXP09-CPP. Use sizeof to determine the size of a type or variable

 

EXP12-CPP. Do not ignore values returned by functions or methods

 

EXP15-CPP. Beware of integer promotion when performing bitwise operations on chars or shorts

 

EXP19-CPP. Do not perform assignments in conditional expressions

 

EXP30-CPP. Do not depend on order of evaluation between sequence points

 

EXP35-CPP. Do not cast away a const qualification

 

EXP36-CPP. Do not convert pointers into more strictly aligned pointer types

 

EXP37-CPP. Call variadic functions with the arguments intended by the API

 

FIO07-CPP. Prefer fseek() to rewind()

 

FIO12-CPP. Prefer setvbuf() to setbuf()

 

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

 

INT12-CPP. Do not make assumptions about the type of a plain int bit-field when used in an expression

 

INT13-CPP. Use bitwise operators only on unsigned operands

 

INT34-CPP. Do not shift a negative number of bits or more bits than exist in the operand

 

MEM02-CPP. Immediately cast the result of a memory allocation function call into a pointer to the allocated type

 

MSC18-CPP. Finish every set of statements associated with a case label with a break statement

 

MSC30-CPP. Do not use the rand() function for generating pseudorandom numbers

 

STR04-CPP. Use plain char for characters in the basic character set

 

STR34-CPP. Cast characters to unsigned types before converting to larger integer sizes

 

STR36-CPP. Do not specify the bound of a character array initialized with a string literal

 

STR37-CPP. Arguments to character handling functions must be representable as an unsigned char