Get the value of the current exception registers
#include <fpstatus.h> int fp_exception_value( int mask );
libm
Use the -l m option to qcc to link against this library.
The fp_exception_value() function gets the value of the current exception registers. Set bits indicate that the exception has signaled, unset bits indicate that the exception hasn't signaled.
The value of the current exception registers based on the values from <fpstatus.h>.
This function doesn't return a special value to indicate that an error occurred. If you want to check for errors, set errno to 0, call the function, and then check errno again. |
#include <fpstatus.h> int main(int argc, char** argv) { int ret; /* Test to see if an operation has set (but not necessarily * signaled depending on the exception mask) the * division by zero bit: */ if (fp_exception_value(_FP_EXC_DIVZERO) & _FP_EXC_DIVZERO) printf("Division by zero has occurred \n"); else printf("Division by zero has not occurred \n"); return(0); }
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | No |
Thread | Yes |
fp_precision(), fp_rounding(), fp_exception_mask(), fp_setenv()