// { dg-do run  }
class A {
public:
};
template <class T>
class B: public virtual A {
public:
  B ();
  ~B ();
};
template <class T>
B<T>::B () { }
template <class T>
B<T>::~B () { }
int main () {
  B<int> ab;
  return 0;
}
// { dg-do run  }
class A {
public:
};
template <class T>
class B: public virtual A {
public:
  B ();
  ~B ();
};
template <class T>
B<T>::B () { }
template <class T>
B<T>::~B () { }
int main () {
  B<int> ab;
  return 0;
}