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

Helix QAC

Include Page
Helix QAC_V
Helix QAC_V

C4450, C4451, C4452, C4453, C4454, C4462, C4465

C++3011


Klocwork

Include Page
Klocwork_V
Klocwork_V

MISRA.CAST.FLOAT.WIDER
MISRA.CAST.FLOAT.INT
MISRA.CAST.INT_FLOAT
MISRA.CONV.FLOAT


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
CERT_C-FLP34-b

Avoid implicit conversions from wider to narrower floating type
Avoid implicit conversions of floating point numbers from wider to narrower floating type

PC-lint Plus

Include Page
PC-lint Plus_V
PC-lint Plus_V

735, 736,
915, 922,
9118, 9227

Partially supported

Polyspace Bug Finder

Include Page
Polyspace Bug Finder_V
Polyspace Bug Finder_V

CERT C: Rule FLP34-C

Checks for float conversion overflow (rule partially covered)

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).

...