------- Comment #4 from pinskia at gcc dot gnu dot org 2006-06-01 17:14 ------- Confirmed, a little more reduced testcase: typedef unsigned int uint32_t; union double_union { double d; uint32_t i[2]; }; int *_Jv_s2b (void); int *_Jv_Balloc (int); double _Jv_strtod_r (int *ptr, char *se, int e1, union double_union rv0, int sign, long y) { union double_union rv; int *bd = 0 , *bd0 = 0; if (e1 > 308) { ovfl: (rv.i[1]) = 0x7ff00000L; (rv.i[0]) = 0; if (bd0) goto retfree; goto ret; } if (!rv.d) rv.d = 0.; bd0 = _Jv_s2b (); for (;;) { bd = _Jv_Balloc (*bd0); if (!rv.d) goto retfree; if (y == ((uint32_t) 0x100000L) ) if (((rv.i[1]) & ((uint32_t) 0x7ff00000L)) >= ((uint32_t) 0x100000L) * (1994)) if ((rv0.i[1]) == (((uint32_t) 0xfffffL) | ((uint32_t) 0x100000L) * (2046)) && (rv0.i[0]) == ((uint32_t) 0xffffffffL)) goto ovfl; _Jv_Bfree1 (); } retfree: _Jv_Bfree (ptr); ret: *se = 0; return sign ? -rv.d : rv.d; }
-- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2006-06-01 17:14:11 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27858