public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/12333] New: Explicit call to MyClass::~MyClass() yields "sorry, unimplemented"
@ 2003-09-18 19:27 John dot Bossom at cognos dot com
  2003-09-18 23:50 ` [Bug c++/12333] " bangerth at dealii dot org
                   ` (10 more replies)
  0 siblings, 11 replies; 12+ messages in thread
From: John dot Bossom at cognos dot com @ 2003-09-18 19:27 UTC (permalink / raw)
  To: gcc-bugs

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>'


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug c++/12333] Explicit call to MyClass::~MyClass() yields "sorry, unimplemented"
  2003-09-18 19:27 [Bug c++/12333] New: Explicit call to MyClass::~MyClass() yields "sorry, unimplemented" John dot Bossom at cognos dot com
@ 2003-09-18 23:50 ` bangerth at dealii dot org
  2003-09-19  2:15 ` [Bug c++/12333] Explicit call to MyClass::~MyClass() not allowed bangerth at dealii dot org
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: bangerth at dealii dot org @ 2003-09-18 23:50 UTC (permalink / raw)
  To: gcc-bugs

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


bangerth at dealii dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
   Last reconfirmed|0000-00-00 00:00:00         |2003-09-18 22:22:43
               date|                            |


------- Additional Comments From bangerth at dealii dot org  2003-09-18 22:22 -------
Interesting. With this slightly reduced code  
-----------------------------  
struct X {  
    void f() {  
      X::~X();  
    }  
    virtual ~X(){}  
};  
----------------------------------  
we get from present mainline:  
tmp/g> ../build-gcc/gcc-install/bin/c++ -c x.cc  
x.cc: In member function `void X::f()':  
x.cc:3: error: no matching function for call to `X::X()'  
x.cc:5: note: candidates are: virtual X::~X()  
  
Note the message for line 3, which talks about the _con_structor, and that the candidate  
given on line 5 is the _de_structor :-) Alas, the whole message is wrong, the code should  
compile.  
  
With 3.3, we get this:  
tmp/g> ~/bin/gcc-3.3/bin/c++ -c x.cc  
x.cc: In member function `void X::f()':  
x.cc:3: error: 'struct X' has no member named '`type_decl' not supported by  
x.cc:3: sorry, unimplemented: dump_expr  
x.cc:3: sorry, unimplemented: ~<expression error>'  
  
And then, with 3.2:  
tmp/g> /usr/bin/c++ -c x.cc  
x.cc: In member function `void X::f()':  
x.cc:3: cannot call destructor `X::~X' without object  
  
  
While playing around a little more, I also came across an ICE. Since it is a regression 
I opened a new PR for it: PR 12335. 
 
W.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug c++/12333] Explicit call to MyClass::~MyClass() not allowed
  2003-09-18 19:27 [Bug c++/12333] New: Explicit call to MyClass::~MyClass() yields "sorry, unimplemented" John dot Bossom at cognos dot com
  2003-09-18 23:50 ` [Bug c++/12333] " bangerth at dealii dot org
@ 2003-09-19  2:15 ` bangerth at dealii dot org
  2003-09-19 19:17 ` John dot Bossom at cognos dot com
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: bangerth at dealii dot org @ 2003-09-19  2:15 UTC (permalink / raw)
  To: gcc-bugs

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



------- Additional Comments From bangerth at dealii dot org  2003-09-18 23:26 -------
Just FYI: a workaround is to write  
  this->MyClass::~MyClass(); 
This allows compilation also with gcc. 
 
W.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug c++/12333] Explicit call to MyClass::~MyClass() not allowed
  2003-09-18 19:27 [Bug c++/12333] New: Explicit call to MyClass::~MyClass() yields "sorry, unimplemented" John dot Bossom at cognos dot com
  2003-09-18 23:50 ` [Bug c++/12333] " bangerth at dealii dot org
  2003-09-19  2:15 ` [Bug c++/12333] Explicit call to MyClass::~MyClass() not allowed bangerth at dealii dot org
@ 2003-09-19 19:17 ` John dot Bossom at cognos dot com
  2003-12-19  2:04 ` pinskia at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: John dot Bossom at cognos dot com @ 2003-09-19 19:17 UTC (permalink / raw)
  To: gcc-bugs

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



------- Additional Comments From John dot Bossom at cognos dot com  2003-09-19 17:40 -------
Well, I can further reduce the workaround to

    this->~MyClass()


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug c++/12333] Explicit call to MyClass::~MyClass() not allowed
  2003-09-18 19:27 [Bug c++/12333] New: Explicit call to MyClass::~MyClass() yields "sorry, unimplemented" John dot Bossom at cognos dot com
                   ` (2 preceding siblings ...)
  2003-09-19 19:17 ` John dot Bossom at cognos dot com
@ 2003-12-19  2:04 ` pinskia at gcc dot gnu dot org
  2004-01-13  3:40 ` [Bug c++/12333] [DR 272] " giovannibajo at libero dot it
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2003-12-19  2:04 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |rejects-valid
   Last reconfirmed|2003-09-18 22:22:43         |2003-12-19 01:24:28
               date|                            |


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


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug c++/12333] [DR 272] Explicit call to MyClass::~MyClass() not allowed
  2003-09-18 19:27 [Bug c++/12333] New: Explicit call to MyClass::~MyClass() yields "sorry, unimplemented" John dot Bossom at cognos dot com
                   ` (3 preceding siblings ...)
  2003-12-19  2:04 ` pinskia at gcc dot gnu dot org
@ 2004-01-13  3:40 ` giovannibajo at libero dot it
  2004-01-13 15:33 ` bangerth at dealii dot org
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: giovannibajo at libero dot it @ 2004-01-13  3:40 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From giovannibajo at libero dot it  2004-01-13 03:40 -------
This is DR 272.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|Explicit call to            |[DR 272] Explicit call to
                   |MyClass::~MyClass() not     |MyClass::~MyClass() not
                   |allowed                     |allowed


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


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug c++/12333] [DR 272] Explicit call to MyClass::~MyClass() not allowed
  2003-09-18 19:27 [Bug c++/12333] New: Explicit call to MyClass::~MyClass() yields "sorry, unimplemented" John dot Bossom at cognos dot com
                   ` (4 preceding siblings ...)
  2004-01-13  3:40 ` [Bug c++/12333] [DR 272] " giovannibajo at libero dot it
@ 2004-01-13 15:33 ` bangerth at dealii dot org
  2004-03-29 14:25 ` bangerth at dealii dot org
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: bangerth at dealii dot org @ 2004-01-13 15:33 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From bangerth at dealii dot org  2004-01-13 15:33 -------
It is also a diagnostic problem, however, see comment #1. 
 
W. 

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |diagnostic


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


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug c++/12333] [DR 272] Explicit call to MyClass::~MyClass() not allowed
  2003-09-18 19:27 [Bug c++/12333] New: Explicit call to MyClass::~MyClass() yields "sorry, unimplemented" John dot Bossom at cognos dot com
                   ` (5 preceding siblings ...)
  2004-01-13 15:33 ` bangerth at dealii dot org
@ 2004-03-29 14:25 ` bangerth at dealii dot org
  2005-01-03 20:52 ` pinskia at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: bangerth at dealii dot org @ 2004-03-29 14:25 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From bangerth at dealii dot org  2004-03-29 14:25 -------
*** Bug 14768 has been marked as a duplicate of this bug. ***

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dannysmith at users dot
                   |                            |sourceforge dot net


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


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug c++/12333] [DR 272] Explicit call to MyClass::~MyClass() not allowed
  2003-09-18 19:27 [Bug c++/12333] New: Explicit call to MyClass::~MyClass() yields "sorry, unimplemented" John dot Bossom at cognos dot com
                   ` (6 preceding siblings ...)
  2004-03-29 14:25 ` bangerth at dealii dot org
@ 2005-01-03 20:52 ` pinskia at gcc dot gnu dot org
  2005-01-05  5:24 ` austern at apple dot com
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-01-03 20:52 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-03 20:52 -------
*** Bug 19243 has been marked as a duplicate of this bug. ***

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |austern at apple dot com


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


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug c++/12333] [DR 272] Explicit call to MyClass::~MyClass() not allowed
  2003-09-18 19:27 [Bug c++/12333] New: Explicit call to MyClass::~MyClass() yields "sorry, unimplemented" John dot Bossom at cognos dot com
                   ` (7 preceding siblings ...)
  2005-01-03 20:52 ` pinskia at gcc dot gnu dot org
@ 2005-01-05  5:24 ` austern at apple dot com
  2005-06-19 14:27 ` pinskia at gcc dot gnu dot org
  2005-09-30 23:41 ` pinskia at gcc dot gnu dot org
  10 siblings, 0 replies; 12+ messages in thread
From: austern at apple dot com @ 2005-01-05  5:24 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From austern at apple dot com  2005-01-05 05:24 -------
I was wrong in thinking this was only a diagnostic bug.  DR272 only affects a nonnormative note.  I've 
checked with Mike Miller, and he pointed me to the appropriate normative text that implies that X::~X() 
within a member function designates the destructor.  This is a genuine rejects-valid bug, not just a bad 
diagnostic.  It is a rejects-valid bug regardless of the status of DR272.

-- 


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


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug c++/12333] [DR 272] Explicit call to MyClass::~MyClass() not allowed
  2003-09-18 19:27 [Bug c++/12333] New: Explicit call to MyClass::~MyClass() yields "sorry, unimplemented" John dot Bossom at cognos dot com
                   ` (8 preceding siblings ...)
  2005-01-05  5:24 ` austern at apple dot com
@ 2005-06-19 14:27 ` pinskia at gcc dot gnu dot org
  2005-09-30 23:41 ` pinskia at gcc dot gnu dot org
  10 siblings, 0 replies; 12+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-06-19 14:27 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-06-19 14:27 -------
*** Bug 19243 has been marked as a duplicate of this bug. ***

-- 


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


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug c++/12333] [DR 272] Explicit call to MyClass::~MyClass() not allowed
  2003-09-18 19:27 [Bug c++/12333] New: Explicit call to MyClass::~MyClass() yields "sorry, unimplemented" John dot Bossom at cognos dot com
                   ` (9 preceding siblings ...)
  2005-06-19 14:27 ` pinskia at gcc dot gnu dot org
@ 2005-09-30 23:41 ` pinskia at gcc dot gnu dot org
  10 siblings, 0 replies; 12+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-09-30 23:41 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-30 23:41 -------
*** Bug 24155 has been marked as a duplicate of this bug. ***

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mon at hks dot com


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


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2005-09-30 23:41 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-09-18 19:27 [Bug c++/12333] New: Explicit call to MyClass::~MyClass() yields "sorry, unimplemented" John dot Bossom at cognos dot com
2003-09-18 23:50 ` [Bug c++/12333] " bangerth at dealii dot org
2003-09-19  2:15 ` [Bug c++/12333] Explicit call to MyClass::~MyClass() not allowed bangerth at dealii dot org
2003-09-19 19:17 ` John dot Bossom at cognos dot com
2003-12-19  2:04 ` pinskia at gcc dot gnu dot org
2004-01-13  3:40 ` [Bug c++/12333] [DR 272] " giovannibajo at libero dot it
2004-01-13 15:33 ` bangerth at dealii dot org
2004-03-29 14:25 ` bangerth at dealii dot org
2005-01-03 20:52 ` pinskia at gcc dot gnu dot org
2005-01-05  5:24 ` austern at apple dot com
2005-06-19 14:27 ` pinskia at gcc dot gnu dot org
2005-09-30 23:41 ` pinskia at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).