Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info
titleGenerated Content

This page is automatically generated from the "Automated Detection" sections in the individual guidelines. Do not modify this page directly.

Version number:
5.0 

INT31-CPP. Ensure that integer conversions do not result in lost or misinterpreted data

C++ checkers

Rule

134 S

Checker

Guideline

PRE01-CPP. Use parentheses within macros around parameter namesPRE02-CPP. Macro replacement lists should be parenthesizedPRE03-CPP. Prefer typedefs to defines for encoding typesPRE04-CPP. Do not reuse a standard header file namePRE06-CPP. Enclose header files in an inclusion guardPRE07-CPP. Avoid using repeated question marksPRE31-CPP. Avoid side-effects in arguments to unsafe macrosDCL01-CPP. Do not reuse variable names in subscopesDCL04-CPP. Do not declare more than one variable per declarationDCL06-CPP. Use meaningful symbolic constants to represent literal values in program logicEXP00-CPP. Use parentheses for precedence of operationEXP06-CPP. Operands to the sizeof operator should not contain side effectsEXP19-CPP. Do not perform assignments in conditional expressionsEXP35-CPP. Do not cast away a const qualificationEXP36-CPP. Do not convert pointers into more strictly aligned pointer typesINT07-CPP. Use only explicitly signed or unsigned char type for numeric valuesINT09-CPP. Ensure enumeration constants map to unique valuesINT13-CPP. Use bitwise operators only on unsigned operandsARR01-CPP. Do not apply the sizeof operator to a pointer when taking the size of an arrayARR30-CPP. Guarantee that array and vector indices are within the valid rangeSTR34-CPP. Cast characters to unsigned types before converting to larger integer sizesMEM02-CPP. Immediately cast the result of a memory allocation function call into a pointer to the allocated typeMSC04-CPP. Use comments consistently and in a readable fashionMSC12-CPP. Detect and remove code that has no effectMSC30-CPP. Do not use the rand() function for generating pseudorandom numbers1 Q

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

134 S

1 Q

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

248 SINT33-CPP. Ensure that division and modulo operations do not result in divide-by-zero errors
344 SEXP32-CPP. Do not access a volatile object through a non-volatile reference

35 D

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

39 S

FLP30-CPP. Do not use floating point variables as loop counters

42 D

DCL30-CPP. Declare objects with appropriate storage durations

43 DINT32-CPP. Ensure that operations on signed integers do not result in overflow
43 DINT33-CPP. Ensure that division and modulo operations do not result in divide-by-zero errors
433 SINT31-CPP. Ensure that integer conversions do not result in lost or misinterpreted data
434 SINT31-CPP. Ensure that integer conversions do not result in lost or misinterpreted data
493 SINT32-CPP. Ensure that operations on signed integers do not result in overflow
494 SINT32-CPP. Ensure that operations on signed integers do not result in overflow
573 SPRE30-CPP. Do not create a universal character name through concatenation
575 SDCL36-CPP. Do not declare an identifier with conflicting linkage classifications
591 SFIO38-CPP. Do not use a copy of a FILE object for input and output

51 D

MEM30-CPP. Do not access freed memory

71 S

DCL30-CPP. Declare objects with appropriate storage durations

75 D

FIO31-CPP. Do not simultaneously open the same file multiple times

82 D

FIO44-CPP. Only use values for fsetpos() that are returned from fgetpos()

84 D

FIO39-CPP. Do not alternately input and output from a stream without an intervening flush or positioning call

86 D

FIO30-CPP. Exclude user input from format strings

9 S

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

93 S

 

:rand() for generating pseudorandom numbers

>