https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65313
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |trippels at gcc dot gnu.org --- Comment #3 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- Confirmed: trippels@CFARM-IUT-TLSE3 gcc_build_dir_ % diff -u ./prev-gmp/mpn/get_d.i ./gmp/mpn/get_d.i --- ./prev-gmp/mpn/get_d.i 2016-02-10 07:38:18.937288446 +0100 +++ ./gmp/mpn/get_d.i 2016-02-10 07:36:41.957291516 +0100 @@ -2015,18 +2015,6 @@ # 3210 "../../../gcc/gmp/gmp-impl.h" typedef mp_limb_t UWtype; typedef unsigned int UHWtype; -# 3243 "../../../gcc/gmp/gmp-impl.h" -union ieee_double_extract -{ - struct - { - gmp_uint_least32_t manl:32; - gmp_uint_least32_t manh:20; - gmp_uint_least32_t exp:11; - gmp_uint_least32_t sig:1; - } s; - double d; -}; # 3279 "../../../gcc/gmp/gmp-impl.h" int __gmp_extract_double (mp_ptr, double); @@ -2211,6 +2199,19 @@ # 1901 "../../../gcc/gmp/longlong.h" extern const unsigned char __gmpn_clz_tab[128]; # 27 "get_d.c" 2 + + + + + + + +union ieee_double_extract { + struct { + int manh, manl, sig, exp; + } s; + double d; +}; # 133 "get_d.c" double __gmpn_get_d (mp_srcptr up, mp_size_t size, mp_size_t sign, long exp) @@ -2228,7 +2229,7 @@ if (__builtin_expect (((unsigned long) ((64 - 0) * size) > (unsigned long) ((-(((long) ((~ (unsigned long) 0) ^ ((unsigned long) (~ (unsigned long) 0) >> 1)))+1)) - exp)) != 0, 0) ) { - if (1) + if (0) goto ieee_infinity;