https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78777
Bug ID: 78777 Summary: [7 Regression] ICE in mark_reachable_handlers, at tree-eh.c:3823 (aarch64-linux-gnu) Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: doko at gcc dot gnu.org Target Milestone: --- seen with r243430 on aarch64-linux-gnu, works with -O0, fails with -O1, -O2: $ cat server.ii void i(...); typedef struct { char b; } c; typedef struct { char d[5]; int e; c *f[4]; int g[]; } h; void k(c *, unsigned char *, int); unsigned char j[1]; void l(h *o, int p, unsigned char *q, int r) { int m = 0; for (; m < o->e; m++) { if (o->f[m] || o->g[m]) continue; try { k(o->f[m], j, 5); if (p) k(o->f[m], q, r); } catch (int) { c a = *o->f[m]; h *b; if (b) { char n; i(n & a.b); } } } } $ g++ -c -O1 -std=c++11 server.ii server.ii: In function 'void l(h*, int, unsigned char*, int)': server.ii:11:6: internal compiler error: in mark_reachable_handlers, at tree-eh.c:3823 void l(h *o, int p, unsigned char *q, int r) { ^ 0xb2fb4f mark_reachable_handlers ../../src/gcc/tree-eh.c:3823 0xb2fbab remove_unreachable_handlers ../../src/gcc/tree-eh.c:3870 0xb31753 execute_cleanup_eh_1 ../../src/gcc/tree-eh.c:4541 0xb31753 execute ../../src/gcc/tree-eh.c:4608 Please submit a full bug report, with preprocessed source if appropriate.