[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