// PR c++/12491 // { dg-do compile } // { dg-options "-O2" } // The return statements are necessary to trigger this bug. class Object { public: virtual ~Object (void) { return; } }; class AutoPtr { public: ~AutoPtr (void) { delete m_rep; return; } private: const Object *m_rep; }; class Handle { public: ~Handle (void) { return; } private: AutoPtr m_rep; }; class HandleOf:public Handle { public: ~HandleOf (void) { return; } }; class Error { public: ~Error (void); private: HandleOf m_hndl; }; Error::~Error (void) { return; }