------- Comment #1 from jakub at gcc dot gnu dot org 2010-08-11 19:42 ------- /* PR debug/45259 */ /* { dg-do compile } */ /* { dg-options "-g -O2 -fpic -w" { target fpic } } */
struct S { void (*bar) (long); }; struct T { struct S *t; }; int w; extern int baz (int); void foo (int x, int u, char *z) { struct T *v; static void *y[256] = { &&l1, &&l2 }; for (;;) switch (x) { l2: x = 9; case 9: goto *y[*z++]; case 10: case 27: case 54: case 99: case 100: case 120: case 122: case 131: case 132: case 134: case 141: case 142: v->t->bar (u); v->t->bar (u); case 143: continue; l1: default: baz (w); } } ICEs: internal compiler error: in save_call_clobbered_regs, at caller-save.c:896 with both trunk and 4.5. last here is a JUMP_INSN with ADDR_DIFF_VEC before bb 5 (but last->block is 5), this is followed by barrier, code_label and a debug_insn. So before the debug_insn isn't any note, nor last->insn, but code_label (and barrier). -- jakub at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot gnu |jakub at gcc dot gnu dot org |dot org | Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Keywords| |ice-on-valid-code Last reconfirmed|0000-00-00 00:00:00 |2010-08-11 19:42:30 date| | Summary|[4.5/4.6 Regression |[4.5/4.6 Regression] ICE in | |save_call_clobbered_regs Target Milestone|--- |4.5.2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45259