H.3.1.1 Indicators

1

C’s <fenv.h> status flags are compatible with the LIA-1 indicators.

2

The following mapping is for floating-point types:

undefined                FE_INVALID, FE_DIVBYZERO
floating_overflow         FE_OVERFLOW
underflow                FE_UNDERFLOW

3

The floating-point indicator interrogation and manipulation operations are:

set_indicators          feraiseexcept(i)
clear_indicators        feclearexcept(i)
test_indicators         fetestexcept(i)
current_indicators      fetestexcept(FE_ALL_EXCEPT)

where i is an expression of type int representing a subset of the LIA-1 indicators.

4

C allows an implementation to provide the following LIA-1 required behavior: at program termination if any indicator is set the implementation shall send an unambiguous and “hard to ignore” message (see LIA-1 subclause 6.1.2)

5

LIA-1 does not make the distinction between floating-point and integer for “undefined”. This documentation makes that distinction because <fenv.h> covers only the floating- point indicators.