// PR c++/94326 | |
// { dg-do compile { target c++11 } } | |
// { dg-options "-fcompare-debug" } | |
template <typename = int> struct A { | |
const int &foo() { return 0; } // { dg-warning "returning reference to temporary" } | |
template <typename _Kt> void bar(_Kt) { foo(); } | |
}; | |
struct B { | |
A<> b; | |
template <typename _Kt> auto baz(_Kt p1) -> decltype(b.bar(p1)) { | |
b.bar(p1); | |
} | |
}; | |
struct C {}; | |
void operator<(C, int) { | |
B a; | |
a.baz(C{}); | |
} |