1 // { dg-do assemble  }
2 // Origin: Mark Mitchell <mark@codesourcery.com>
3 
4 template <class T>
5 int g (T);
6 
7 int j = g (3);
8 
9 template <class T>
f(T)10 inline T f (T)
11 {
12   return 2;
13 }
14 
15 template <class T>
16 struct S
17 {
18   static const int i;
19 };
20 
21 template <class T>
22 const int S<T>::i = f (3);
23 
24 template <class T>
g(T)25 int g (T)
26 {
27   return S<double>::i;
28 }
29 
30