On Mon, May 09, 2011 at 10:58:56AM -0700, H.J. Lu wrote:
> On Fri, May 6, 2011 at 6:11 PM, H.J. Lu <hjl.to...@gmail.com> wrote:
> > 2011-05-06  H.J. Lu  <hongjiu...@intel.com>
> >
> >        PR debug/48853
> >        * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
> >        POINTERS_EXTEND_UNSIGNED, don't give up if mode is Pmode and
> >        mem_mode is not VOIDmode.
> >
> > diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
> > index 026e4a7..049ca8e 100644
> > --- a/gcc/dwarf2out.c
> > +++ b/gcc/dwarf2out.c
> > @@ -13892,7 +13892,11 @@ mem_loc_descriptor (rtx rtl, enum machine_mode 
> > mode,
> >        break;
> >       if (GET_MODE_CLASS (mode) == MODE_INT
> >          && GET_MODE_CLASS (GET_MODE (SUBREG_REG (rtl))) == MODE_INT
> > -         && GET_MODE_SIZE (mode) <= DWARF2_ADDR_SIZE
> > +         && (GET_MODE_SIZE (mode) <= DWARF2_ADDR_SIZE
> > +#ifdef POINTERS_EXTEND_UNSIGNED
> > +             || (mode == Pmode && mem_mode != VOIDmode)
> > +#endif
> > +            )
> >          && GET_MODE_SIZE (GET_MODE (SUBREG_REG (rtl))) <= DWARF2_ADDR_SIZE)
> >        {
> >          mem_loc_result = mem_loc_descriptor (SUBREG_REG (rtl),
> >
> 
> PING.

Can you please explain how do you get such a SUBREG in a MEM address?

        Jakub

Reply via email to