/* Test C2x maybe_unused attribute: valid uses.  */
/* { dg-do compile } */
/* { dg-options "-std=c2x -pedantic-errors -Wall -Wextra -Wunused" } */

[[maybe_unused]] static void f1 (void) {}

[[__maybe_unused__]] const int c1 = 1;
static int c2 [[maybe_unused]] = 2;

int
g ([[maybe_unused]] int x, int y)
{
  [[maybe_unused]] typedef float F;
  [[maybe_unused]] int a;
  int b [[__maybe_unused__]];
  int c [[maybe_unused]];
  c = y;
  return y;
}

struct [[maybe_unused]] s { double d; };

struct s2 { [[__maybe_unused__]] int a; int b [[maybe_unused]]; } x;

enum e { E1 [[maybe_unused]] };

union [[maybe_unused]] u { int x; };

enum [[maybe_unused]] eu { E2 };

union u2 { [[maybe_unused]] int a; int b [[maybe_unused]]; } y;
