1// RUN: %clang_cc1 -fsyntax-only -verify %s 2// expected-no-diagnostics 3 4template<typename T> struct X1 { }; 5 6template<typename T> 7struct X0 { 8 typedef int size_type; 9 typedef T value_type; 10 11 size_type f0() const; 12 value_type *f1(); 13 X1<value_type*> f2(); 14}; 15 16template<typename T> 17typename X0<T>::size_type X0<T>::f0() const { 18 return 0; 19} 20 21template<typename U> 22typename X0<U>::value_type *X0<U>::f1() { 23 return 0; 24}; 25 26template<typename U> 27X1<typename X0<U>::value_type*> X0<U>::f2() { 28 return 0; 29}; 30