Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/c-c++-common/Wimplicit-fallthrough-6.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* PR c/7652 */ /* { dg-do compile } */ /* { dg-options "-Wimplicit-fallthrough" } */ extern void bar (int); /* Test nested scopes. */ void f (int i) { switch (i) { case 1: { int j; } case 2: bar (99); } switch (i) { case 1: { int j = 10; /* { dg-warning "statement may fall through" } */ } case 2: bar (99); } switch (i) { case 1: { int k = 9; k++; { int j = 10; j++; /* { dg-warning "statement may fall through" } */ } } case 2: bar (99); } switch (i) { case 1: { int k = 9; k++; { int j = 10; j++; { bar (1); /* { dg-warning "statement may fall through" } */ } } } case 2: bar (99); } switch (i) { case 1: { int j = 0; bar (j); __attribute__((fallthrough)); } case 2: bar (99); } switch (i) { case 1: { int j = 0; { int k = j + 5; bar (k); __attribute__((fallthrough)); } } case 2: bar (99); } switch (i) { case 1: { int j = 0; bar (j); return; } case 2: bar (99); } switch (i) { case 1: { int j = 0; bar (j); goto L1; } L1: case 2: bar (99); } switch (i) { case 1: { /* { dg-warning "statement may fall through" "" { target c } } */ int j = 0; bar (j); if (j == 8) return; /* { dg-warning "statement may fall through" "" { target c++ } } */ } case 2: bar (99); } switch (i) { case 1: { int j = 0; bar (j); if (j == 8) return; else return; } case 2: bar (99); } switch (i) { case 1: { /* { dg-warning "statement may fall through" "" { target c } } */ int j = 0; bar (j); if (j == 8) bar (1); else return; /* { dg-warning "statement may fall through" "" { target c++ } } */ } case 2: bar (99); } switch (i) { case 1: { int j = 0; bar (j); if (j == 8) return; else bar (2); /* { dg-warning "statement may fall through" } */ } case 2: bar (99); } switch (i) { case 1: { /* { dg-warning "statement may fall through" "" { target c } } */ int j = 0; bar (j); if (j == 8) bar (1); else bar (2); /* { dg-warning "statement may fall through" "" { target c++ } } */ } case 2: bar (99); } switch (i) { case 1: { int j = 0; bar (j); if (j == 8) return; } break; case 2: bar (99); } switch (i) { case 1: { int j = 0; bar (j); if (j == 8) return; else return; } break; case 2: bar (99); } switch (i) { case 1: { int j = 0; bar (j); if (j == 8) bar (1); else return; } break; case 2: bar (99); } switch (i) { case 1: { int j = 0; bar (j); if (j == 8) return; else bar (2); } break; case 2: bar (99); } switch (i) { case 1: { int j = 0; bar (j); if (j == 8) bar (1); else bar (2); } break; case 2: bar (99); } switch (i) { case 1: { int j = 9; while (1); } case 2: bar (99); } switch (i) { case 1: { /* { dg-warning "statement may fall through" "" { target c } } */ int j = 9; switch (j); /* { dg-warning "statement may fall through" "" { target c++ } } */ } case 2: bar (99); } switch (i) { case 1: { int j = 0; bar (j); if (j == 8) bar (1); else bar (2); __attribute__((fallthrough)); } case 2: bar (99); } }