blob: cacaf55bb492a2920b258b35e3e4e3acdfdcaf3b [file] [log] [blame]
// PR c++/77886
// { dg-do compile }
// { dg-options "-Wimplicit-fallthrough" }
template <int N>
int
foo (int x, int y)
{
switch (x)
{
case 1:
x++; // { dg-bogus "this statement may f\[ahlotu\]*gh" }
// FALLTHROUGH
case 2:
x++;
break;
case 3:
x++; // { dg-bogus "this statement may f\[ahlotu\]*gh" }
// FALLTHROUGH
lab:
case 4:
x++;
break;
case 5:
x++; // { dg-bogus "this statement may f\[ahlotu\]*gh" }
// FALLTHROUGH
default:
x++;
break;
case 26:
goto lab;
}
#if __cplusplus >= 201103L
switch (y)
{
case 1:
y++; // { dg-bogus "this statement may f\[ahlotu\]*gh" }
[[fallthrough]];
case 2:
y++;
break;
case 3:
y++; // { dg-bogus "this statement may f\[ahlotu\]*gh" }
[[fallthrough]];
lab2:
case 4:
y++;
break;
case 5:
y++; // { dg-bogus "this statement may f\[ahlotu\]*gh" }
[[fallthrough]];
default:
y++;
break;
case 26:
goto lab2;
}
#endif
return x + y;
}
int
bar (int x, int y)
{
return foo<0> (x, y);
}