Go to the first, previous, next, last section, table of contents.
The gcc backend and, consequently, g77, currently provides no
control over whether or not floating-point exceptions are trapped or
ignored.
(Ignoring them typically results in NaN values being
propagated in systems that conform to IEEE 754.)
The behaviour is inherited from the system-dependent startup code.
Most systems provide some C-callable mechanism to change this; this can
be invoked at startup using gcc's constructor attribute.
For example, just compiling and linking the following C code with your
program will turn on exception trapping for the "common" exceptions
on an x86-based GNU system:
#include <fpu_control.h>
void __attribute__ ((constructor))
trapfpe () {
  (void) __setfpucw (_FPU_DEFAULT &
                     ~(_FPU_MASK_IM | _FPU_MASK_ZM | _FPU_MASK_OM));
}
Go to the first, previous, next, last section, table of contents.