http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54192
--- Comment #2 from Marc Glisse <glisse at gcc dot gnu.org> 2012-08-07 13:13:46 UTC --- Don't you need to tell the compiler (with the FENV_ACCESS pragma) that you are going to look at flags, just like you tell it that you are going to use non-default rounding modes? "In general, if the state of FENV_ACCESS is โโoffโโ, the translator can assume that default modes are in effect and the flags are not tested." The compiler would also need to #undef FE_DOWNWARD in fenv.h if it wants to pretend that it only supports round-to-nearest (there is an "if and only if" in the standard). I think I see what you mean: if there is only one rounding-mode, then the pragma has no effect on rounding so you can pretend that it is on. But then the same applies to trapping, since the standard explicitly allows for FE_ALL_EXCEPT==0.