Versions Compared

Key

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

...

This compliant solution assumes that the range of values of type float is greater than that of an int, as is the case in most implementations. Unfortunately, there is no safe way to inquire about this assumption in the code short of already knowing the implementation. Converting INT_MAX to float is a problem on many implementations, resulting in a number one that is one greater than the value of INT_MAX.  Converting INT_MIN to float is a problem on many implementations, resulting in a number one less that is one less than the value of INT_MIN.

...

Tool

Version

Checker

Description

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

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

Fortify SCA

5.0

 

Can detect violations of this rule with CERT C Rule Pack

LDRA tool suite
Include Page
LDRA_V
LDRA_V
435 S, 93 SPartially implemented
Parasoft C/C++test9.5MISRA2004-10_1_dPartially implemented
PRQA QA-C
Include Page
PRQA QA-C_v
PRQA QA-C_v

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

Partially implemented

Related Vulnerabilities

...