Versions Compared

Key

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

...

Tool

Version

Checker

Description

Astrée
Include Page
Astrée_V
Astrée_V

Supported

Astrée reports all potential overflows resulting from floating-point conversions.

Compass/ROSE



Can detect some violations of this rule. However, it does not flag implicit casts, only explicit ones

Coverity

Include Page
Coverity_V
Coverity_V

MISRA_CAST (needs verification)

Can detect instances where implicit float conversion is involved: implicitly converting a complex expression with integer type to floating type, implicitly converting a double expression to narrower float type (may lose precision), implicitly converting a complex expression from float to double, implicitly converting from float to double in a function argument, and so on

LDRA tool suite
Include Page
LDRA_V
LDRA_V
435 S, 93 SPartially implemented
Parasoft C/C++test
Include Page
Parasoft_V
Parasoft_V
CERT_C-FLP34-a

Avoid implicit conversions from wider to narrower types

Polyspace Bug Finder

Include Page
Polyspace Bug Finder_V
Polyspace Bug Finder_V

Float conversion overflow

Integer conversion overflow

Unsigned integer conversion overflow

CERT C: Rule FLP34-C

Checks for float conversion overflow (rule partially covered)

Overflow when converting between floating point data types

Overflow when converting between integer types

Overflow when converting between unsigned integer types

PRQA QA-C
Include Page
PRQA QA-C_v
PRQA QA-C_v

4450, 4451,
4452, 4453,
4454,
4462, 4465

Partially implemented
PRQA QA-C++

Include Page
cplusplus:PRQA QA-C++_V
cplusplus:PRQA QA-C++_V

3011 
PVS-Studio

Include Page
PVS-Studio_V
PVS-Studio_V

V615, V2003, V2004
TrustInSoft Analyzer

Include Page
TrustInSoft Analyzer_V
TrustInSoft Analyzer_V

float_to_int

Exhaustively verified (see one compliant and one non-compliant example).

...