/* { dg-do compile } */ /* We used to ICE because we removed the cast to List_linked* in -[ListIndex_linked next]. */ @interface List { @public int firstLink; } @end @interface ListIndex_linked { @public List *collection; int link; } @end @interface List_linked: List @end @implementation List @end @implementation ListIndex_linked - next { link = ((List_linked*)collection)->firstLink; } @end