I get the following ICE: [EMAIL PROTECTED]:~$ /usr/lib/gcc-snapshot/bin/gcc -c -O3 -Werror qof-jvp_frame.c cc1: warnings being treated as errors qof-jvp_frame.c: In function 'kvp_frame_compare': qof-jvp_frame.c:60: warning: passing argument 1 of 'kvp_frame_for_each_slot' discards qualifiers from pointer target type qof-jvp_frame.c: At top level: qof-jvp_frame.c:62: error: inlined_to pointer is set but no predecessors found kvp_value_compare/6: (inline copy in kvp_glist_compare/0) availability:available(2) 19 insns (39 after inlining) tree externally_visible finalized inlinable called by: calls: kvp_glist_compare/11 (inlined) qof-jvp_frame.c:62: internal compiler error: verify_cgraph_node failed Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. For Debian GNU/Linux specific bug reporting instructions, see <URL:file:///usr/share/doc/gcc-4.1/README.Bugs>. [EMAIL PROTECTED]:~$ /usr/lib/gcc-snapshot/bin/gcc -c -O3 qof-jvp_frame.c qof-jvp_frame.c: In function 'kvp_frame_compare': qof-jvp_frame.c:60: warning: passing argument 1 of 'kvp_frame_for_each_slot' discards qualifiers from pointer target type [EMAIL PROTECTED]:~$ gcc-4.1 -c -O3 -Werror qof-jvp_frame.c [EMAIL PROTECTED]:~$
Testcase: typedef int gint; typedef void *gpointer; typedef struct _GList GList; struct _GList { gpointer data; } __fsid_t; typedef struct _KvpFrame KvpFrame; typedef struct _KvpValue KvpValue; typedef enum { KVP_TYPE_GLIST, } KvpValueType; struct _KvpValue { KvpValueType type; union { GList *list; } value; }; kvp_glist_compare (const GList * list1, const GList * list2) { const GList *lp1; const GList *lp2; while (lp1 && lp2) { KvpValue *v1 = (KvpValue *) lp1->data; KvpValue *v2 = (KvpValue *) lp2->data; gint vcmp = kvp_value_compare (v1, v2); } } kvp_frame_for_each_slot (KvpFrame * f, void (*proc) (const char *key, KvpValue * value, gpointer data), gpointer data) { } kvp_value_compare (const KvpValue * kva, const KvpValue * kvb) { switch (kva->type) { case KVP_TYPE_GLIST: return kvp_glist_compare (kva->value.list, kvb->value.list); } } typedef struct { } kvp_frame_cmp_status; static void kvp_frame_compare_helper (const char *key, KvpValue * val, gpointer data) { } kvp_frame_compare (const KvpFrame * fa, const KvpFrame * fb) { kvp_frame_cmp_status status; kvp_frame_for_each_slot ((KvpFrame *) fb, kvp_frame_compare_helper, &status); } -- Summary: [4.2 Regression] verify_cgraph_node failed (inlined_to pointer is set but no predecessors found) Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tbm at cyrius dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29254