2015-03-30 20:20 GMT+03:00 Jan Hubicka <hubi...@ucw.cz>: >> On 30 Mar 14:05, Ilya Enkovich wrote: >> > 2015-03-27 18:23 GMT+03:00 Jan Hubicka <hubi...@ucw.cz>: >> > > Index: symtab.c >> > > =================================================================== >> > > --- symtab.c (revision 221734) >> > > +++ symtab.c (working copy) >> > > @@ -1130,15 +1130,20 @@ symtab_node::verify_symtab_nodes (void) >> > > &existed); >> > > if (!existed) >> > > *entry = node; >> > > - else >> > > - for (s = (*entry)->same_comdat_group; s != NULL && s != >> > > node; s = s->same_comdat_group) >> > > + else if (!DECL_EXTERNAL (node->decl)) >> > > + { >> > > + for (s = (*entry)->same_comdat_group; s != NULL && s != >> > > node; >> > > + s = s->same_comdat_group) >> > > + ; >> > >> > With no if-statement in the loop body you need an additional exit >> > condition for a case when you reach the entry. >> > >> > Thanks, >> > Ilya >> > >> >> Here is a patch to add a testcase, fix the loop and avoid same_comdat_group >> for instrumented external symbols. Does it look OK? > > OK >> >> BTW should we check same_comdat_group is NULL for external symbols? > > We could do that, yes. If you can come with a patch, it is OK for next > stage1.
Bootstrap fails with such check. Seems we may have same_comdat_group for external symbols with body. Ilya > > Honza