// P1169R4 - static operator()
// { dg-do compile { target c++11 } }
// { dg-options "" }
void
foo ()
{
  int u = 0;
  auto a = [](int x, int y) mutable mutable { return x + y; };		// { dg-error "duplicate 'mutable' specifier" }
  auto b = [](int x, int y) static static { return x + y; };		// { dg-error "duplicate 'static' specifier" }
									// { dg-warning "'static' only valid in lambda with" "" { target c++20_down } .-1 }
  auto c = [](int x, int y) static mutable { return x + y; };		// { dg-error "'mutable' specifier conflicts with 'static'" }
									// { dg-warning "'static' only valid in lambda with" "" { target c++20_down } .-1 }
  auto d = [](int x, int y) mutable static { return x + y; };		// { dg-error "'static' specifier conflicts with 'mutable'" }
									// { dg-warning "'static' only valid in lambda with" "" { target c++20_down } .-1 }
  auto e = [=](int x, int y) static { return x + y; };			// { dg-error "lambda specifier with lambda capture" }
									// { dg-warning "'static' only valid in lambda with" "" { target c++20_down } .-1 }
  auto f = [&](int x, int y) static { return x + y; };			// { dg-error "lambda specifier with lambda capture" }
									// { dg-warning "'static' only valid in lambda with" "" { target c++20_down } .-1 }
  auto g = [u](int x, int y) static { return x + y; };			// { dg-error "lambda specifier with lambda capture" }
									// { dg-warning "'static' only valid in lambda with" "" { target c++20_down } .-1 }
}