1 // PR c++/49156 2 // { dg-do compile { target c++11 } } 3 4 template<typename T> T declval(); 5 6 template<typename T> 7 struct S { 8 9 template<typename U> 10 static U get(const volatile T&); 11 12 template<typename U> 13 static decltype(*declval<U>()) get(...); // { dg-error "operator*" } 14 15 typedef decltype(get<T>(declval<T>())) type; // { dg-error "" } 16 }; 17 18 struct X { }; 19 20 S<X>::type x; 21 22 // { dg-prune-output "note" } 23