Versions Compared

Key

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

If a double is demoted to a float or a long double is demoted to a double or a float, and the initial value exceeds the maximum of the demoted type, then the value of the result undefined.

Non-Compliant Code Example

This non-compliant code illustrates possible undefined behavior associated with demoting floating point represented numbers.

...

In the assignments above, it is possible that the variable d1 exceeds the maximum value that can be stored by a float or that the variable ld exceeds the maximum value that can be represented as either a float or a double.

Compliant Code Example

This compliant code properly checks to see whether the values to be stored are too large to be represented.

...