1 // { dg-do compile { target c++14 } }
2 
3 template <class T, class U> struct ST;
4 template <class T> struct ST<T,T> {};
5 
6 int g(int);
7 char& g(char);
8 double&& g(double);
9 
10 template <class T> auto&& f(T t)
11 { return g(t); }		// { dg-warning "reference to temporary" }
12 
13 int main()
14 {
15   ST<decltype(f(1)),int&&>();
16   ST<decltype(f('\0')),char&>();
17   ST<decltype(f(1.0)),double&&>();
18 }
19