1 // PR c++/79228
2 // { dg-do compile { target c++14 } }
3 // { dg-options "-Wpedantic" }
4 
5 template <class,class> struct same;
6 template <class T> struct same<T,T> { };
7 
8 int main()
9 {
10   same<decltype(0i),__complex int>{}; // { dg-warning "literal operator" }
11   // { dg-message "complex_literals" "" { target *-*-* } .-1 }
12   // { dg-message "built-in" "" { target *-*-* } .-2 }
13 
14   same<decltype(0.0i),__complex double>{}; // { dg-warning "literal operator" }
15   // { dg-message "complex_literals" "" { target *-*-* } .-1 }
16   // { dg-message "built-in" "" { target *-*-* } .-2 }
17 
18   same<decltype(0.0if),__complex float>{}; // { dg-warning "literal operator" }
19   // { dg-message "complex_literals" "" { target *-*-* } .-1 }
20   // { dg-message "built-in" "" { target *-*-* } .-2 }
21 
22   same<decltype(0.0il),__complex long double>{}; // { dg-warning "literal operator" }
23   // { dg-message "complex_literals" "" { target *-*-* } .-1 }
24   // { dg-message "built-in" "" { target *-*-* } .-2 }
25 }
26