[Bug lto/84044] Spurious -Wodr warning with -flto

hubicka at ucw dot cz gcc-bugzilla@gcc.gnu.org
Fri Jan 26 15:54:00 GMT 2018


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

--- Comment #8 from Jan Hubicka <hubicka at ucw dot cz> ---
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84044
> 
> --- Comment #7 from rguenther at suse dot de <rguenther at suse dot de> ---
> On Fri, 26 Jan 2018, marxin at gcc dot gnu.org wrote:
> 
> > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84044
> > 
> > --- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> ---
> > (In reply to Richard Biener from comment #4)
> > > (In reply to Martin Liška from comment #3)
> > > > Fixed on trunk by Richi's r256685. Is it intentional Richi that the revision
> > > > should fix such situations?
> > > 
> > > Not really.  It means that the following hunk removes too many TYPE_BINFOs
> > > I guess?
> > > 
> > > @@ -5150,15 +5145,9 @@ free_lang_data_in_type (tree type)
> > >         {
> > >           free_lang_data_in_binfo (TYPE_BINFO (type));
> > >           /* We need to preserve link to bases and virtual table for all
> > > -            polymorphic types to make devirtualization machinery working.
> > > -            Debug output cares only about bases, but output also
> > > -            virtual table pointers so merging of -fdevirtualize and
> > > -            -fno-devirtualize units is easier.  */
> > > -         if ((!BINFO_VTABLE (TYPE_BINFO (type))
> > > -              || !flag_devirtualize)
> > > -             && ((!BINFO_N_BASE_BINFOS (TYPE_BINFO (type))
> > > -                  && !BINFO_VTABLE (TYPE_BINFO (type)))
> > > -                 || debug_info_level != DINFO_LEVEL_NONE))
> > > +            polymorphic types to make devirtualization machinery working. 
> > > */
> > > +         if (!BINFO_VTABLE (TYPE_BINFO (type))
> > > +             || !flag_devirtualize)
> > >             TYPE_BINFO (type) = NULL;
> > >         }
> > >      }
> > 
> > Reverting this hunk makes the warning visible again.
> 
> Interesting.  This means that with -g it didn't warn before either?
> Which means that maybe unconditionally
> 
>   && !BINFO_N_BASE_BINFOS (TYPE_BINFO (type))
> 
> was intented?  Honza?

Yep that was my tought exactly, but I want to take deeper look what we really
use and what not.

Honza
> 
> -- 
> You are receiving this mail because:
> You are on the CC list for the bug.


More information about the Gcc-bugs mailing list