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