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

Honza

Reply via email to