> 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)