view gcc/testsuite/g++.old-deja/g++.jason/template41.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

// { dg-do run  }
// PRMS Id: 11420
// Bug: Can't handle indirect virtual template base init.

extern "C" int printf (const char *, ...);

template<class T>
class Vbase {
 public:
  Vbase(T i) { printf ("%d\n", i); }
};

template<class T>
class D1 : virtual public Vbase<T> {
 public:
  D1(T i) : Vbase<T>(i) {}
};

template<class T>
class D2 : virtual public Vbase<T> {
 public:
  D2(T i) : Vbase<T>(i) {}
};

template<class T>
class Most : public D1<T>, public D2<T> {
 public:
  Most(T i) : D1<T>(i), D2<T>(i), Vbase<T>(i) {}
};

int main () {
  Most<int> x(2);
  return 0;
}