blob: f0f9dfb73dce02c34bb08b4b86eeb68384b27476 [file] [log] [blame]
// PR c++/85765
// { dg-do compile { target c++11 } }
struct il { il(); il(const il&); };
int* begin(il);
template<class T> T&& declval();
template<class T, class U = decltype(begin(declval<T&>())), decltype(*U(),0) = 0>
U g(T& t, long) { return begin(t); } // #1
template<class T>
int g(T& t, ...); // #2
volatile il a;
auto n = g(a, 0); // calls #1 and ends with a hard error, should call #2