// { dg-do assemble } // PRMS Id: 4346 // Bug: g++ dies on redefinition of cc_Array::repInvariant. class ccObjectInfo { public: virtual const ccObjectInfo& repInvariant (int =0) const; }; template class cc_Array : public ccObjectInfo { public: virtual const ccObjectInfo& repInvariant (int =0) const ; }; template const ccObjectInfo& cc_Array::repInvariant(int) const // { dg-message "previously declared" } { return *this /* *this is required here */; } template class ccArray :public ccObjectInfo { ccArray (cc_Array*); }; template class ccObjArray : public ccArray { ccObjArray(); }; template const ccObjectInfo& cc_Array::repInvariant(int) const // { dg-error "redefinition" } { return 0; } typedef ccObjArray< double> ccROIRuns;