Como ya te ha dicho
eferion lo primero que deberías de hacer es probar con
<fenv.h>. El Flag obtenido por las funciones de
<fenv.h> NO es un flag de la ALU. No obstante, no todos los compiladores dan soporte a ello en C.
Puedes comprobar rápidamente si eso es una posibilidad linkando con -lm y mostrando todos los warnings (-Wall) y escribiendo el siguiente pragma
Si te dice que el pragma no es conocido sólo se me ocurre una idea que no es portable de compilador a compilador. Si el comportamiento por defecto de tu compilador es redondear con roundToEven o roundToNearest el overflow quedará siempre con el valor a infinitivo si es overflow por encima para positivos o -infinitivo si overflow para negativos utilizando la función isinf de math.h