This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix PR53501


On Fri, 1 Jun 2012, Eric Botcazou wrote:

> > So, what case do you see disabled where there is no sign conversion
> > involved?
> 
> For the Ada testcase I attached, in fold_binary_loc we have:
> 
> (gdb) p debug_tree(op0)
>  <nop_expr 0x7ffff700c5a0
>     type <integer_type 0x7ffff6fdd0a8 bitsizetype public unsigned sizetype DI
>         size <integer_cst 0x7ffff6fccec0 constant visited 64>
>         unit size <integer_cst 0x7ffff6fccee0 constant visited 8>
>         align 64 symtab 0 alias set -1 canonical type 0x7ffff6fdd0a8 precision 
> 64 min <integer_cst 0x7ffff6fccf60 0> max <integer_cst 0x7ffff6fccf80 -1>>
>     readonly
>     arg 0 <mult_expr 0x7ffff700e030
>         type <integer_type 0x7ffff6fdd000 sizetype public unsigned sizetype DI 
> size <integer_cst 0x7ffff6fccec0 64> unit size <integer_cst 0x7ffff6fccee0 8>
>             align 64 symtab 0 alias set -1 canonical type 0x7ffff6fdd000 
> precision 64 min <integer_cst 0x7ffff6fccf00 0> max <integer_cst 
> 0x7ffff6fccf20 -1>>
>         readonly
> 
> (gdb) p debug_tree(arg0)
>  <mult_expr 0x7ffff700e030
>     type <integer_type 0x7ffff6fdd000 sizetype public unsigned sizetype DI
>         size <integer_cst 0x7ffff6fccec0 constant visited 64>
>         unit size <integer_cst 0x7ffff6fccee0 constant visited 8>
>         align 64 symtab 0 alias set -1 canonical type 0x7ffff6fdd000 precision 
> 64 min <integer_cst 0x7ffff6fccf00 0> max <integer_cst 0x7ffff6fccf20 -1>>
>     readonly

Ah, I see.  So the proper fix would be to use STRIP_NOP()ed op0/op1,
something not readily available though.

Richard.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]