------- Comment #1 from rguenth at gcc dot gnu dot org 2006-06-24 11:37 ------- Confirmed.
We have Breakpoint 3, const_binop (code=RDIV_EXPR, arg1=0xa7bc6708, arg2=0xa7bc6690, notrunc=0) at /home/richard/src/trunk/gcc/fold-const.c:1691 (gdb) call debug_generic_expr (arg1) __complex__ (1.0e+0, 0.0) (gdb) call debug_generic_expr (arg2) __complex__ (1.90000007326203904e+19, 0.0) which calls the const_binop (PLUS_EXPR, ...) with the results of const_binop (code=MULT_EXPR, arg1=0xa7bc6660, arg2=0xa7bc6660, notrunc=0) at /home/richard/src/trunk/gcc/fold-const.c:1554 1554 STRIP_NOPS (arg1); (gdb) call debug_generic_expr (arg1) 0.0 (gdb) call debug_generic_expr (arg2) 0.0 Value returned is $5 = (union tree_node *) 0xa7bc67e0 (gdb) call debug_generic_expr ($5) 0.0 and const_binop (code=MULT_EXPR, arg1=0xa7bc6630, arg2=0xa7bc6630, notrunc=0) at /home/richard/src/trunk/gcc/fold-const.c:1554 1554 STRIP_NOPS (arg1); (gdb) call debug_generic_expr (arg1) 1.90000007326203904e+19 (gdb) call debug_generic_expr (arg2) 1.90000007326203904e+19 Value returned is $6 = (union tree_node *) 0x0 !? We hit 1614 /* Don't constant fold this floating point operation if 1615 the result has overflowed and flag_trapping_math. */ 1616 1617 if (flag_trapping_math 1618 && MODE_HAS_INFINITIES (mode) 1619 && REAL_VALUE_ISINF (result) 1620 && !REAL_VALUE_ISINF (d1) 1621 && !REAL_VALUE_ISINF (d2)) 1622 return NULL_TREE; because the multiplication result is infinity (in SFmode). -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rguenth at gcc dot gnu dot | |org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2006-06-24 11:37:02 date| | Summary|ICE on complex |ICE on complex http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28151