1// { dg-do assemble } 2 3template <class T> 4struct S1 5{ 6 void foo(T = t()); 7 8 static T t(); 9}; 10 11 12template <class T> 13struct S2 14{ 15 void bar(); 16}; 17 18 19template <class T> 20void S2<T>::bar () 21{ 22 S1<T> st; 23 st.foo(); 24} 25 26 27int main() 28{ 29 S2<int> s2i; 30 s2i.bar(); 31} 32 33