1 // PR c++/78244
2 // { dg-do compile { target c++11 } }
3 
4 struct S { int d; };
5 
6 template <typename T>
7 auto f1() -> decltype(S{2.0}, void()) { } // { dg-error "narrowing conversion" }
8 
9 template <typename T>
10 auto f2() -> decltype(S{2.0}, 1) { return 1; } // { dg-error "narrowing conversion" }
11 
12 template <typename T>
13 auto f3() -> decltype(void(), S{2.0}, 1) { return 1; } // { dg-error "narrowing conversion" }
14 
15 template <typename T>
16 auto f4() -> decltype((S{2.0}, 1)) { return 1; } // { dg-error "narrowing conversion" }
17