1// { dg-do assemble  }
2// { dg-options "-fpermissive" }
3
4template <class T>
5struct B
6{
7  typedef int I;
8};
9
10
11template <class T>
12struct D : public B<T>
13{
14  void f();
15};
16
17
18template <class T>
19void D<T>::f()
20{
21  I(); // { dg-warning "" }
22}
23
24
25template <>
26struct B<int>
27{
28  void I();
29};
30
31
32int main()
33{
34  D<int> di;
35  di.f();
36}
37