1// { dg-do assemble  }
2// GROUPS passed templates
3template<class T>
4class L {
5public:
6    L();
7
8    T x[30];
9    int doit(int i) const;
10};
11
12#ifdef BUG
13template<class T>
14int
15L<T>::doit(int i) const
16{
17    return x[i].z;
18}
19#endif
20
21class X {
22public:
23    class Y {
24    public:
25        Y();
26        Y(int);
27
28        int z;
29    };
30
31    L<Y> ly;
32};
33
34#ifndef BUG
35template<class T>
36int
37L<T>::doit(int i) const
38{
39    return x[i].z;
40}
41#endif
42
43static X x;
44