[Bug middle-end/95021] [10/11 Regression] Bogus -Wclobbered warning

hjl.tools at gmail dot com gcc-bugzilla@gcc.gnu.org
Wed May 13 13:28:32 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95021

--- Comment #8 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to rguenther@suse.de from comment #6)
> On Tue, 12 May 2020, hjl.tools at gmail dot com wrote:
> 
> > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95021
> > 
> > --- Comment #4 from H.J. Lu <hjl.tools at gmail dot com> ---
> > The problem is since df_lr_bb_local_compute has
> > 
> >        /* If the def is to only part of the reg, it does
> >            not kill the other defs that reach here.  */
> >         if (!(DF_REF_FLAGS (def) & (DF_REF_PARTIAL | DF_REF_CONDITIONAL)))
> >           {
> >             unsigned int dregno = DF_REF_REGNO (def);
> >             bitmap_set_bit (&bb_info->def, dregno);
> >             bitmap_clear_bit (&bb_info->use, dregno);
> >           }
> > 
> > it doesn't consider
> > 
> > (insn 40 39 25 3 (set (subreg:SI (reg/v:DI 85 [ target ]) 4)
> >         (subreg:SI (reg:V2DI 90) 0)) "x.i":17:7 -1
> >      (nil))
> > 
> > as a def.
> 
> Which it isn't since it sets the upper half of reg:DI 85 only.

True.  But it is clearly incorrect that reg:DI 85 is live at function
entrance.


More information about the Gcc-bugs mailing list