// PR c++/31027 struct A {}; template struct C: virtual A { C() {} template C(const C&) {} C func(const class C&) const; operator bool() const; }; template struct D: C { void func2() { Ca; a.func(a); } }; void func3() { Ca; a.func(a); }