1 // PR c++/34206
2 // { dg-additional-options "-Wno-return-type" }
3 
4 template<class _T1, class _T2> struct pair { };
5 template <class T0, class T1> struct tuple {
6   template <class U1, class U2>
7   tuple& operator=(const pair<U1, U2>& k) { }
8 };
tie(T1 & t1,T2 & t2)9 template<class T1, class T2> inline tuple<T1&, T2&> tie(T1& t1, T2& t2) { }
10 
11 template <class T> struct A
12 {
13   typedef T type;
14   pair<type, type> f();
15 };
16 
g(A<int> a)17 void g(A<int> a)
18 {
19   typedef A<int>::type type;
20   type begin1, end1;
21   tie(begin1, end1) = a.f();
22 }
23