Versions Compared

Key

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

...

Division

The result of the / operator is the quotient from the division of the first arithmetic operand by the second arithmetic operand. Division operations are susceptible to divide-by-zero errors. Overflow can also occur during two's complement signed integer division when the dividend is equal to the minimum (most negative) value for the signed integer type and the divisor is equal to −1 (see INT32-C. Ensure that operations on signed integers do not result in overflow).

...

Tool

Version

Checker

Description

CodeSonar
Include Page
CodeSonar_V
CodeSonar_V
LANG.ARITH.DIVZERODivision by zero

Compass/ROSE

  

Can detect some violations of this rule . (In particular, it ensures that all operations involving division or modulo are preceded by a check ensuring that the second operand is nonzero.)

Coverity6.5DIVIDE_BY_ZEROFully implemented
Fortify SCA5.0 

Can detect violations of this rule with CERT C Rule Pack

LDRA tool suite

Include Page
LDRA_V
LDRA_V

43 D, 248 S, 629 S, 80 X

Partially implemented
Parasoft C/C++test9.5BD-PB-ZEROFully implemented
Parasoft Insure++  Runtime detection
PRQA QA-C
Include Page
PRQA QA-C_v
PRQA QA-C_v

2830 (C)
2831 (D)
2832 (A)
2833 (S)
2834 (P)

Fully implemented
Cppcheck
Include Page
Cppcheck_V
Cppcheck_V
zerodiv
zerodivcond

Context sensitive analysis of division by zero
Not detected for division by struct member / array element / pointer data that is 0.
Detected when there is unsafe division by variable before/after test if variable is zero

...