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*c87b03e5Sespieint main () { 31*c87b03e5Sespie Most<int> x(2); 32*c87b03e5Sespie return 0; 33*c87b03e5Sespie } 34