// { dg-do assemble } class OBJECT {int a;}; class STDFILE {int b;}; template class VECTOR { T *v; int sz; public: T& elem(int i) { return v[i]; } T& operator[] (int i); }; template class PVECTOR : VECTOR { public: T*& elem(int i) {return (T*&) VECTOR::elem(i); } T*& operator[] (int i) {return (T*&) VECTOR::operator[](i);} }; PVECTOR *foo; PVECTOR *goo;