[Bug tree-optimization/78777] New: [7 Regression] ICE in mark_reachable_handlers, at tree-eh.c:3823 (aarch64-linux-gnu)
doko at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Dec 12 14:46:00 GMT 2016
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.
More information about the Gcc-bugs
mailing list