// RUN: %clang_cc1 -std=c++1z -verify %s template struct A { constexpr A(int = 0) {} }; A() -> A; A(int) -> A; static constexpr inline const volatile A a = {}; // ok, specifiers are permitted A b; A c [[]] {}; A d = {}, e = {}; A f(0), g{}; // expected-error {{template arguments deduced as 'A' in declaration of 'f' and deduced as 'A' in declaration of 'g'}} struct B { static A a; // expected-error {{requires an initializer}} }; extern A x; // expected-error {{requires an initializer}} static A y;