http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46727

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2010.11.30 17:06:24
      Known to work|                            |4.5.0
   Target Milestone|---                         |4.3.6
            Summary|ICE with -O3 and            |[4.3/4.4 Regression] ICE
                   |-ffast-math (in             |with -O3 and -ffast-math
                   |get_callee_fndecl, at       |(in get_callee_fndecl, at
                   |tree.c:6857)                |tree.c:6857)
     Ever Confirmed|0                           |1
      Known to fail|                            |4.3.0, 4.4.4

--- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2010-11-30 
17:06:24 UTC ---
Confirmed.

6848      /* It's invalid to call this function with anything but a
6849         CALL_EXPR.  */
6850      gcc_assert (TREE_CODE (call) == CALL_EXPR);
(gdb) p call->base.code
$1 = NOP_EXPR

#1  0x0000000000d2a2d9 in get_callee_fndecl (call=0x7ffff61ba5c0)
    at /space/rguenther/src/svn/gcc-4_4-branch/gcc/tree.c:6850
#2  0x000000000070b484 in expand_builtin (exp=0x7ffff61ba5c0, target=0x0, 
    subtarget=0x0, mode=DFmode, ignore=0)
    at /space/rguenther/src/svn/gcc-4_4-branch/gcc/builtins.c:6246
#3  0x00000000006f980c in expand_builtin_pow (exp=0x7ffff61c26c0, 
    target=0x7ffff61c19c0, subtarget=0x0)
    at /space/rguenther/src/svn/gcc-4_4-branch/gcc/builtins.c:3045
#4  0x000000000070bac4 in expand_builtin (exp=0x7ffff61c26c0, 
    target=0x7ffff61c19c0, subtarget=0x0, mode=DFmode, ignore=0)
    at /space/rguenther/src/svn/gcc-4_4-branch/gcc/builtins.c:6372

3044              tree call_expr = build_call_expr (fn, 1,narg0);
3045              op = expand_builtin (call_expr, NULL_RTX, subtarget, mode,
0);
(gdb) call debug_tree (call_expr)
 <nop_expr 0x7ffff61ba5c0
    type <real_type 0x7ffff7efbc00 double DF
        size <integer_cst 0x7ffff7ed5b40 constant 64>
        unit size <integer_cst 0x7ffff7ed5b70 constant 8>
        align 64 symtab 0 alias set -1 canonical type 0x7ffff7efbc00 precision
64
        pointer_to_this <pointer_type 0x7ffff7efbe40>>
    constant
    arg 0 <real_cst 0x7ffff61a9990 type <real_type 0x7ffff7efbc00 double>
        constant 2.8778015923432587186425735126249492168426513671875e+0>>

somehow we missed a constant folding.

Reply via email to