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