------- Comment #3 from rguenth at gcc dot gnu dot org  2005-10-21 10:41 -------
We are endlessly folding

(gdb) call debug_tree(expr)
 <cond_expr 0x403fc2e0
    type <integer_type 0x4018a9b4 unsigned int unsigned sizetype SI
        size <integer_cst 0x40025208 constant 32>
        unit size <integer_cst 0x40025294 constant 4>
        align 32 symtab 0 alias set -1 precision 32 min <integer_cst 0x400252d0
0> max <integer_cst 0x400252e4 4294967295>>

    arg 0 <eq_expr 0x4002c828
        type <boolean_type 0x40027870 bool unsigned QI
            size <integer_cst 0x400250f0 constant 8>
            unit size <integer_cst 0x40025104 constant 1>
            align 8 symtab 0 alias set -1 precision 1 min <integer_cst
0x40025424 0> max <integer_cst 0x40025460 1>>

        arg 0 <nop_expr 0x4025a3ac type <integer_type 0x40027654 unsigned int>
            readonly
            arg 0 <integer_cst 0x4025a154 constant 1>>
        arg 1 <integer_cst 0x4025a3c0 constant 1>>
    arg 1 <integer_cst 0x4002594c type <integer_type 0x4018a9b4 unsigned int>
constant 1>
    arg 2 <integer_cst 0x400259c4 type <integer_type 0x4018a9b4 unsigned int>
constant 0>>

#1  0x08330424 in fold (expr=0x403fc380) at fold-const.c:8151
#2  0x08330424 in fold (expr=0x403fc360) at fold-const.c:8151
#3  0x08330424 in fold (expr=0x403fc340) at fold-const.c:8151
...

coming from

#0  fold (expr=0x40023760) at fold-const.c:8151
#1  0x08310ed5 in fold (expr=0x4025a5dc) at fold-const.c:5507
#2  0x0816c538 in ocp_convert (type=0x4018a9b4, expr=0x40023300, convtype=15, 
    flags=131) at cvt.c:699
#3  0x0816d729 in convert (type=0x4018a9b4, expr=0x40023300) at cvt.c:944
#4  0x082cc8ed in expand_expr_real (exp=0x4002c7f8, target=0x40248aa0, 
    tmode=SImode, modifier=EXPAND_NORMAL, alt_rtl=0xbfcf2468) at expr.c:6916
#5  0x082bd8eb in store_expr (exp=0x4002c7f8, target=0x40248aa0, want_value=0)
    at expr.c:4221
#6  0x082bc798 in expand_assignment (to=0x40257bd0, from=0x4002c7f8, 
    want_value=0) at expr.c:4001
#7  0x082e199b in expand_expr_real (exp=0x4002c7e0, target=0x0, 
    tmode=VOIDmode, modifier=EXPAND_NORMAL, alt_rtl=0xbfcf445c) at expr.c:8710

Expanding

#4  0x082cc8ed in expand_expr_real (exp=0x4002c7f8, target=0x40248aa0, 
    tmode=SImode, modifier=EXPAND_NORMAL, alt_rtl=0xbfcf2468) at expr.c:6916
Line number 6916 out of range; expr.c has 141 lines.
(gdb) call debug_tree (exp)
 <array_ref 0x4002c7f8
    type <integer_type 0x400275e8 int SI
        size <integer_cst 0x4025a30c constant 32>
        unit size <integer_cst 0x4025a320 constant 4>
        align 32 symtab 0 alias set -1 precision 32 min <integer_cst 0x4025a334
-2147483648> max <integer_cst 0x4025a348 2147483647>
        pointer_to_this <pointer_type 0x4018b0d8>>

    arg 0 <component_ref 0x4002c810
        type <array_type 0x40251ec4 type <integer_type 0x400275e8 int>
            DI
            size <integer_cst 0x4025a2e4 constant 64>
            unit size <integer_cst 0x4025a2f8 constant 8>
            align 32 symtab 0 alias set -1 domain <integer_type 0x4018b6c0>>

        arg 0 <indirect_ref 0x4025a26c type <record_type 0x402516c0 TestClass>

            arg 0 <nop_expr 0x4025a280 type <pointer_type 0x40251798>
                readonly arg 0 <var_decl 0x40257af8 this>>>
        arg 1 <field_decl 0x40251f30 c type <array_type 0x40251ec4>
            used nonlocal decl_3 DI file bug.cpp line 12
            size <integer_cst 0x400255a0 constant 64>
            unit size <integer_cst 0x40025924 constant 8>
            align 32 offset_align 128
            offset <integer_cst 0x400259c4 constant 0>
            bit offset <integer_cst 0x40025a64 constant 0> context <record_type
0x402516c0 TestClass> arguments <integer_cst 0x400259c4 0> chain <type_decl
0x402518dc TestClass>>>
    arg 1 <cond_expr 0x40023300 type <integer_type 0x400275e8 int>

        arg 0 <eq_expr 0x4002c828 type <boolean_type 0x40027870 bool>

            arg 0 <nop_expr 0x4025a3ac type <integer_type 0x40027654 unsigned
int>
                readonly
                arg 0 <integer_cst 0x4025a154 constant 1>>
            arg 1 <integer_cst 0x4025a3c0 constant 1>>
        arg 1 <integer_cst 0x4025a3d4 constant 1>
        arg 2 <integer_cst 0x4025a3e8 constant 0>>>


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
                   |dot org                     |org
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2005-10-21 10:28:03         |2005-10-21 10:41:53
               date|                            |


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

Reply via email to