/* PR c/49859 */ /* { dg-do compile } */ extern void foo (int); extern int j; void fn0 (int i) { switch (i) { int k; case 1: k = 11; foo (k); } switch (i) j = 10; /* { dg-warning "statement will never be executed" } */ switch (i) ; switch (i) { j = 12; /* { dg-warning "statement will never be executed" } */ default: foo (j); } int o; switch (i) { o = 333; /* { dg-warning "statement will never be executed" } */ case 4: break; default: foo (o); } switch (i) switch (j) /* { dg-warning "statement will never be executed" } */ { o = 42; /* { dg-warning "statement will never be executed" } */ case 8:; } switch (i) { int l = 3; /* { dg-warning "statement will never be executed" } */ o = 5; j = 7; ++l; } switch (i) { int x; int l = 3; /* { dg-warning "statement will never be executed" } */ ++l, ++x; } switch (i) if (j != 3) /* { dg-warning "statement will never be executed" } */ foo (j); switch (i) while (1) foo (0); switch (i) while (i > 5) { } switch (i) goto X; /* { dg-warning "statement will never be executed" } */ X: switch (i) do foo (1); while (1); switch (i) for (;;) foo (-1); switch (i) default: j = 6; switch (i) { typedef int T; case 3: { T x = 5; foo (x); } } switch (i) { static int g; default: foo (g); } switch (i) { L: j = 16; default: if (j < 5) goto L; break; } }