------- Comment #1 from pinskia at gcc dot gnu dot org 2006-09-27 18:34 ------- Here is a reduced testcase: typedef struct _GList GList; typedef struct _KvpFrame KvpFrame; typedef struct _KvpValue KvpValue; struct _KvpValue { int type; GList *list; }; kvp_glist_compare (GList * list1,GList * list2) { while (list1) kvp_value_compare (); } kvp_frame_for_each_slot (KvpFrame * f, void *data){} kvp_value_compare (KvpValue * kva, KvpValue * kvb) { switch (kva->type) { case 0: kvp_glist_compare (kva->list, kvb->list); } } kvp_frame_compare (const KvpFrame * fb) { int status; kvp_frame_for_each_slot ((KvpFrame *) fb,&status); }
----- But I am thinking there are two bugs here, first the warning I think it bogus as there is a cast in the argument for the function. Second is the ICE. -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|error-recovery, ice-on- | |invalid-code | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29254