Hi,

On Thu, 7 Apr 2011, Richard Guenther wrote:

> > 5600      newx = simplify_subreg (outermode, op, innermode, byte);
> > (gdb) f 1
> > #1  0x0000000000708494 in expand_expr_real_2 (ops=0x7fffffffb0c0, 
> > target=0x0,
> >    tmode=VOIDmode, modifier=EXPAND_INITIALIZER)
> >    at /export/gnu/import/git/gcc-x32/gcc/expr.c:7366
> > 7366                op0 = simplify_gen_subreg (mode, op0, inner_mode,
> > (gdb) call debug_tree (treeop0)
> >  <addr_expr 0x7ffff0a78d50
> >    type <pointer_type 0x7ffff0b83f18
> >        type <void_type 0x7ffff0b83e70 void VOID
> >            align 8 symtab 0 alias set -1 canonical type 0x7ffff0b83e70
> >            pointer_to_this <pointer_type 0x7ffff0b83f18>>
> >        sizes-gimplified public unsigned SI
> >    arg 0 <label_decl 0x7ffff0b7b400 l2 type <void_type 0x7ffff0b83e70 void>
> > (gdb) call debug_rtx (op0)
> > (label_ref/v:DI 22)
> > (gdb)
> >
> 
> First I wonder what CONSTANT_P object we arrive with here (it looks like
> something unfolded, given that we likely came here with a NOP_EXPR).

The CONSTANT_P object is the '(label_ref/v:DI 22)'.  Not only CONST_INT 
are CONSTANT_P, also some others (symbol_ref too).  Those might have a 
mode.  Here the label_ref has DImode, but the pointer type in trees points 
to an SImode.  The latter makes sense, because that's what ptr_mode is for 
HJs target.

HJ: you'll need to tell us what you mean with 'breaks 
gcc.c-torture/compile/labels-3.c' .  What breaks, in which way?


Ciao,
Michael.

Reply via email to