------- Comment #3 from steven at gcc dot gnu dot org 2006-06-24 13:50 ------- We ICE in fold-const.c line 1691 (r114961):
= const_binop (PLUS_EXPR, const_binop (MULT_EXPR, r2, r2, notrunc), const_binop (MULT_EXPR, i2, i2, notrunc), notrunc); This happens because const_binop (MULT_EXPR, r2, r2, notrunc) returns NULL_TREE. The input argument r2 is 0.0: Breakpoint 3, const_binop (code=RDIV_EXPR, arg1=0x2aaaaaffafc0, arg2=0x2aaaaaffaf90, notrunc=0) at fold-const.c:1691 1691 notrunc); (gdb) step const_binop (code=MULT_EXPR, arg1=0x2aaaaaf2e5c8, arg2=0x2aaaaaf2e5c8, notrunc=0) at fold-const.c:1554 1554 STRIP_NOPS (arg1); (gdb) p debug_tree(arg1) <real_cst 0x2aaaaaf2e5c8 type <real_type 0x2aaaaaf45210 real4 SF size <integer_cst 0x2aaaaaf29540 constant invariant 32> unit size <integer_cst 0x2aaaaaf29060 constant invariant 4> align 32 symtab 0 alias set -1 precision 32 pointer_to_this <pointer_type 0x2aaaaaf45420>> constant invariant 0.0> $17 = void (gdb) p debug_tree(arg2) <real_cst 0x2aaaaaf2e5c8 type <real_type 0x2aaaaaf45210 real4 SF size <integer_cst 0x2aaaaaf29540 constant invariant 32> unit size <integer_cst 0x2aaaaaf29060 constant invariant 4> align 32 symtab 0 alias set -1 precision 32 pointer_to_this <pointer_type 0x2aaaaaf45420>> constant invariant 0.0> $18 = void (gdb) -- steven at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot gnu |steven at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2006-06-24 11:37:02 |2006-06-24 13:50:09 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28151