> On Mon, 30 Mar 2015, Jan Hubicka wrote:
> 
> > Hi,
> > when compiling C++ program that define different number of virtual method
> > in different classes, we output warnings about their virtual tables
> > being of different type. THese warnings looks ugly and we are able
> > to diagnose the situation in more sensible way.
> > 
> > This patch simply silences all warnings on artificial decls.
> > 
> > Bootstrapped/regtested x86_64-linux OK?
> 
> Hum...  but do ODR warnings cover all other cases here?  Well,

For C++ vtables and typeinfos it should. I am not at all sure what
other kinds of artifical & public declarations we produce.

> the warnings won't be useful to users I suppose.

yep, that was the main motivation.
Perhaps for development purposes we could drop a message into .cgraph dump (and
eventaully break it into .merge dump)

Honza
> 
> Thus, ok.
> 
> Thanks,
> Richard.
> 
> > Honza
> > 
> >     * lto-symtab.c (lto_symtab_merge_decls_2): Silence warnings on
> >     artificial decls.
> > Index: lto/lto-symtab.c
> > ===================================================================
> > --- lto/lto-symtab.c        (revision 221757)
> > +++ lto/lto-symtab.c        (working copy)
> > @@ -473,7 +473,8 @@ lto_symtab_merge_decls_2 (symtab_node *f
> >      if (TREE_PUBLIC (e->decl))
> >        {
> >     if (!lto_symtab_merge (prevailing, e)
> > -       && !diagnosed_p)
> > +       && !diagnosed_p
> > +       && !DECL_ARTIFICIAL (e->decl))
> >       mismatches.safe_push (e->decl);
> >        }
> >    if (mismatches.is_empty ())
> > 
> > 
> 
> -- 
> Richard Biener <rguent...@suse.de>
> SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Jennifer Guild,
> Dilip Upmanyu, Graham Norton HRB 21284 (AG Nuernberg)

Reply via email to