// RUN: %clang_cc1 -fsyntax-only -verify -Wno-c23-extensions %s // expected-no-diagnostics namespace std { typedef decltype(sizeof(int)) size_t; template class initializer_list { const _E *__begin_; size_t __size_; constexpr initializer_list(const _E *__b, size_t __s) : __begin_(__b), __size_(__s) {} public: constexpr initializer_list() : __begin_(nullptr), __size_(0) {} }; } // namespace std template struct S { S(std::initializer_list); }; template <> struct S { S(std::initializer_list); }; struct S1 { S data; int a; }; template void to_array(_Tp (&&__a)[_Nm]) {} template void tfn(T) {} void tests() { S{{ #embed __FILE__ }}; S1 ss{std::initializer_list{ #embed __FILE__ }}; S sss = { #embed __FILE__ }; std::initializer_list il{ #embed __FILE__ }; static constexpr auto initializer_list = std::initializer_list{ #embed __FILE__ , '\0'}; static constexpr auto intinitializer_list = std::initializer_list{ #embed __FILE__ , '\0'}; to_array({ #embed __FILE__ }); tfn>({ #embed __FILE__ }); }