1 // PR c++/57196
2 // { dg-require-effective-target c++11 }
3 
4 #include <initializer_list>
5 
6 template<class T>
7 struct set {
8   set() = default;
setset9   set(std::initializer_list<T>){}
10 };
11 
12 struct string {
stringstring13   string(const char*){}
~stringstring14   ~string(){}
15 };
16 
17 typedef decltype(sizeof(0)) size_t;
18 
19 template <size_t> struct EqHelper { };
20 
21 int IsNullLiteralHelper(...);
22 
Fn()23 void Fn() {
24   EqHelper<sizeof IsNullLiteralHelper(set<int>{1})>        eq1;  // ok
25   EqHelper<sizeof IsNullLiteralHelper(set<string>())>      eq2;  // ok
26   EqHelper<sizeof IsNullLiteralHelper(set<string>{"foo"})> eq3;  // error
27 }
28