https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57496

Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |burnus at gcc dot gnu.org,
                   |                            |fxcoudert at gcc dot gnu.org
           Assignee|unassigned at gcc dot gnu.org      |fxcoudert at gcc dot 
gnu.org

--- Comment #6 from Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> ---
On x86_64-apple-darwin14, I can confirm this occurs on 5.2.0 but appears to
have been fixed on trunk.

Also, I don't understand how Tobias' patch worked, because in libgfortran.h we
have for a long time redefined all the type-generic floating-point macros in
terms of "safe to use" GCC builtins:


/* The C99 classification macros isfinite, isinf, isnan, isnormal
   and signbit are broken or inconsistent on quite a few targets.
   So, we use GCC's builtins instead.

   Another advantage for GCC's builtins for these type-generic macros
   is that it handles floating-point types that the system headers
   may not support (like __float128).  */

#undef isnan
#define isnan(x) __builtin_isnan(x)
#undef isfinite
#define isfinite(x) __builtin_isfinite(x)
#undef isinf
#define isinf(x) __builtin_isinf(x)
#undef isnormal
#define isnormal(x) __builtin_isnormal(x)
#undef signbit
#define signbit(x) __builtin_signbit(x)

Reply via email to