http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45827

--- Comment #38 from Daniel Franke <dfranke at gcc dot gnu.org> 2010-12-28 
12:22:48 UTC ---
Created attachment 22856
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22856
testcase, ICE with patch in comment #35

(In reply to comment #37)
> > I managed to get an ICE with your version (sym == NULL)
> 
> No, that's not possible. My version (i.e. comment #35) is inserted at a
> slightly different place than yours, where the existence of 'sym' is already
> established.

Err, sure it is possible:

+      if (sym->attr.is_class)
+       sym = sym->components->ts.u.derived;

After this, sym is not checked any more and the ICE occurs in the next line:

       if (sym->components != NULL && p->u.pointer == NULL)
           ^^^

That's why I moved it up a few lines and double check that sym really is
non-NULL.

Reply via email to