https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63764
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Version|tree-ssa |5.0 Last reconfirmed| |2014-11-07 Component|middle-end |tree-optimization CC| |trippels at gcc dot gnu.org Ever confirmed|0 |1 Summary|nternal compiler error: in |[5 Regression] ICE: in |verify_ssa, at |verify_ssa, at |tree-ssa.c:939 |tree-ssa.c:939 Target Milestone|--- |5.0 Severity|major |normal --- Comment #1 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- Also happens when building the Linux kernel: trippels@gcc2-power8 linux-3.17.2 % cat dev.i struct hlist_head { struct hlist_node *first }; struct hlist_node { struct hlist_node *next }; struct net_device { int ifindex; struct hlist_node index_hlist } * a; b, f; *fn1 (int *p1, int p2) { struct hlist_head *c; struct net_device *d; c = &a[b]; struct hlist_head *e = c; d = ( { 0; e->first ? ( { (char *) e->first - __builtin_offsetof(typeof(*d), index_hlist); }) : 0; }); for (; d; d = ( { 0; d->index_hlist.next ? ( { (char *) d->index_hlist.next - __builtin_offsetof(typeof(*d), index_hlist); }) : 0; })) if (d->ifindex == p2) return d; return 0; } *fn2 (int *p1, int p2) { struct hlist_head *g; struct net_device *h; g = &a[b]; struct hlist_head *i = g; h = ( { typeof(( { &f; })) j = ( { i->first; }); j ? ( { (char *) j - __builtin_offsetof(typeof(*h), index_hlist); }) : 0; }); for (; h; h = ( { typeof(( { &f; })) k = ( { typeof(0) *l = *(volatile typeof(h) *) &( &h->index_hlist)->next; l; }); k ? ( { (char *) k - __builtin_offsetof(typeof(*h), index_hlist); }) : 0; })) if (h->ifindex == p2) return h; return 0; } fn3 () { fn1 (0, 0); } trippels@gcc2-power8 linux-3.17.2 % gcc -w -c -O2 dev.i dev.i: In function ‘fn3’: dev.i:92:1: internal compiler error: in verify_ssa, at tree-ssa.c:939 fn3 () { fn1 (0, 0); } ^