1 // RUN: %clang_cc1 -std=c++1z -verify %s
2 
AA3 template<typename T> struct A { constexpr A(int = 0) {} };
4 A() -> A<int>;
5 A(int) -> A<char>;
6 
7 static constexpr inline const volatile A a = {}; // ok, specifiers are permitted
8 A b;
9 A c [[]] {};
10 
11 A d = {}, e = {};
12 A f(0), g{}; // expected-error {{template arguments deduced as 'A<char>' in declaration of 'f' and deduced as 'A<int>' in declaration of 'g'}}
13 
14 struct B {
15   static A a; // expected-error {{requires an initializer}}
16 };
17 extern A x; // expected-error {{requires an initializer}}
18 static A y;
19 
20