This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/12333] New: Explicit call to MyClass::~MyClass() yields "sorry, unimplemented"


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12333

           Summary: Explicit call to MyClass::~MyClass() yields "sorry,
                    unimplemented"
           Product: gcc
           Version: 3.3.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: John dot Bossom at cognos dot com
                CC: gcc-bugs at gcc dot gnu dot org

//
// ==============================================================
// Description
// ==============================================================
// gcc does not implicitly map "MyClass::~MyClass()" used within a
// method of "MyClass" to the current object's MyClass destructor.
//
// This technique is valid on Vendor's C++ Compilers
//    MSVC++ 6.0
//    SunOS C++ 5.3
//    AIX xlC_r 5.0
//    HP-UX aCC A.03.33
//
// The compile line and resulting error are included at the
// end of this file.
//
// ==============================================================
// Workaround:
// ==============================================================
// Explicitly cast "this" to MyClass
//
//
// ==============================================================
// gcc Version: 3.3.1 (g++ -v )
// ==============================================================
// g++ -v
// Reading specs from /local/gcc/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/specs
// Configured with: /local/gcc_build/src/gcc-3.3.1/configure -prefix=/local 
--enable-languages=c,c++ : (reconfigured) 
/local/gcc_build/src/gcc-3.3.1/configure -prefix=/local/gcc 
--enable-languages=c,c++
// Thread model: posix
// gcc version 3.3.1
//
// ==============================================================
// system type: Linus Enterprise Server Edition 2.1 WS (uname -a)
// ==============================================================
// 
// Linux lweslx1.cognos.com 2.4.9-e.12 #1 Tue Feb 11 03:12:29 EST 2003 i686 
unknown


class MyClass
{
	virtual void destroy()
	{
#ifdef BUG
		// This should implicitly map to the exact MyClass destructor
		MyClass::~MyClass();
#else
		// Workaround
		static_cast< MyClass >( *this ).~MyClass();
#endif
	}

	public:
		MyClass(){}

		virtual ~MyClass(){}
};


// g++ -DBUG -c bug.cc
// bug.cc: In member function `virtual void MyClass::destroy()':
// bug.cc:45: error: 'class MyClass' has no member named '`type_decl' not 
// bug.cc:45: sorry, unimplemented: supported by dump_expr
// bug.cc:45: sorry, unimplemented: ~<expression error>'


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]