1*c87b03e5Sespie // PRMS Id: 11420
2*c87b03e5Sespie // Bug: Can't handle indirect virtual template base init.
3*c87b03e5Sespie 
4*c87b03e5Sespie extern "C" int printf (const char *, ...);
5*c87b03e5Sespie 
6*c87b03e5Sespie template<class T>
7*c87b03e5Sespie class Vbase {
8*c87b03e5Sespie  public:
Vbase(T i)9*c87b03e5Sespie   Vbase(T i) { printf ("%d\n", i); }
10*c87b03e5Sespie };
11*c87b03e5Sespie 
12*c87b03e5Sespie template<class T>
13*c87b03e5Sespie class D1 : virtual public Vbase<T> {
14*c87b03e5Sespie  public:
D1(T i)15*c87b03e5Sespie   D1(T i) : Vbase<T>(i) {}
16*c87b03e5Sespie };
17*c87b03e5Sespie 
18*c87b03e5Sespie template<class T>
19*c87b03e5Sespie class D2 : virtual public Vbase<T> {
20*c87b03e5Sespie  public:
D2(T i)21*c87b03e5Sespie   D2(T i) : Vbase<T>(i) {}
22*c87b03e5Sespie };
23*c87b03e5Sespie 
24*c87b03e5Sespie template<class T>
25*c87b03e5Sespie class Most : public D1<T>, public D2<T> {
26*c87b03e5Sespie  public:
Most(T i)27*c87b03e5Sespie   Most(T i) : D1<T>(i), D2<T>(i), Vbase<T>(i) {}
28*c87b03e5Sespie };
29*c87b03e5Sespie 
main()30*c87b03e5Sespie int main () {
31*c87b03e5Sespie   Most<int> x(2);
32*c87b03e5Sespie   return 0;
33*c87b03e5Sespie }
34