// RUN: %clang_cc1 -std=c++1z -verify %s
template<typename T> struct A { constexpr A(int = 0) {} };
A() -> A<int>;
A(int) -> A<char>;
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<char>' in declaration of 'f' and deduced as 'A<int>' 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;