(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
cpp1z/
fallthrough2.C
// { dg-do compile { target c++17 } }
// { dg-options "-Wextra -Wall -Wpedantic" }

int
foo (int i)
{
  switch (i)
    {
    case 2:
      ++i;
      [[fallthrough, whatever::fallthrough]];		// { dg-bogus "attribute 'fallthrough' specified multiple times" }
    case 3:						// { dg-warning "'fallthrough' attribute ignored" "" { target *-*-* } .-1 }
      ++i;
      [[fallthrough, whatever2::fallthrough(1, 2, 3)]];	// { dg-bogus "attribute 'fallthrough' specified multiple times" }
    case 4:						// { dg-warning "'fallthrough' attribute ignored" "" { target *-*-* } .-1 }
      [[whatever3::fallthrough("abcd")]];		// { dg-warning "attributes at the beginning of statement are ignored" }
    case 5:
      [[whatever4::fallthrough]];			// { dg-bogus "attribute 'fallthrough' not preceding a case label or default label" }
      ++i;						// { dg-warning "attributes at the beginning of statement are ignored" "" { target *-*-* } .-1 }
    default:
      break;
    }
  return i;
}