Commit d66ae36a by Paolo Carlini Committed by Paolo Carlini

libstdc++/3150: revert 2001-11-30 commit.

2002-01-09  Paolo Carlini <pcarlini@unitus.it>

	libstdc++/3150: revert 2001-11-30 commit. DR266 only means
	that the destructors should be removed from the descriptions
	in the standard: writing them explicitly allows the vtable
	heuristic to work. For additional information see:
	http://gcc.gnu.org/ml/libstdc++/2002-01/msg00090.html
	http://gcc.gnu.org/ml/libstdc++/2002-01/msg00110.html
	http://gcc.gnu.org/ml/libstdc++/2002-01/msg00155.html
	* libsupc++/exception (bad_exception::~bad_exception()):
	Reintroduce declaration.
	* libsupc++/new (bad_alloc::~bad_alloc()): Same.
	* libsupc++/typeinfo (bad_cast::~bad_cast()): Same.
	(bad_typeid::~bad_typeid()): Same.
	* libsupc++/eh_exception.cc (bad_exception::~bad_exception()):
	Reintroduce definition.
	* libsupc++/new_handler.cc (bad_alloc::~bad_alloc()): Same.
	* libsupc++/tinfo.cc (bad_cast::~bad_cast()): Same.
	(bad_typeid::~bad_typeid()): Same.

From-SVN: r48687
parent 30c1fa76
2002-01-09 Paolo Carlini <pcarlini@unitus.it>
libstdc++/3150: revert 2001-11-30 commit. DR266 only means
that the destructors should be removed from the descriptions
in the standard: writing them explicitly allows the vtable
heuristic to work. For additional information see:
http://gcc.gnu.org/ml/libstdc++/2002-01/msg00090.html
http://gcc.gnu.org/ml/libstdc++/2002-01/msg00110.html
http://gcc.gnu.org/ml/libstdc++/2002-01/msg00155.html
* libsupc++/exception (bad_exception::~bad_exception()):
Reintroduce declaration.
* libsupc++/new (bad_alloc::~bad_alloc()): Same.
* libsupc++/typeinfo (bad_cast::~bad_cast()): Same.
(bad_typeid::~bad_typeid()): Same.
* libsupc++/eh_exception.cc (bad_exception::~bad_exception()):
Reintroduce definition.
* libsupc++/new_handler.cc (bad_alloc::~bad_alloc()): Same.
* libsupc++/tinfo.cc (bad_cast::~bad_cast()): Same.
(bad_typeid::~bad_typeid()): Same.
2002-01-09 Benjamin Kosnik <bkoz@redhat.com> 2002-01-09 Benjamin Kosnik <bkoz@redhat.com>
* include/Makefile.am (c_base_srcdir): Remove duplicate '/'. * include/Makefile.am (c_base_srcdir): Remove duplicate '/'.
......
// -*- C++ -*- std::exception implementation. // -*- C++ -*- std::exception implementation.
// Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 // Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
// Free Software Foundation // Free Software Foundation
// //
// This file is part of GNU CC. // This file is part of GNU CC.
...@@ -35,6 +35,8 @@ ...@@ -35,6 +35,8 @@
std::exception::~exception() throw() { } std::exception::~exception() throw() { }
std::bad_exception::~bad_exception() throw() { }
const char* const char*
std::exception::what() const throw() std::exception::what() const throw()
{ {
......
// Exception Handling support header for -*- C++ -*- // Exception Handling support header for -*- C++ -*-
// Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001 Free Software Foundation // Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002
// Free Software Foundation
// //
// This file is part of GNU CC. // This file is part of GNU CC.
// //
...@@ -62,6 +63,7 @@ namespace std ...@@ -62,6 +63,7 @@ namespace std
{ {
public: public:
bad_exception() throw() { } bad_exception() throw() { }
virtual ~bad_exception() throw();
}; };
/// If you write a replacement %terminate handler, it must be of this type. /// If you write a replacement %terminate handler, it must be of this type.
......
// The -*- C++ -*- dynamic memory management header. // The -*- C++ -*- dynamic memory management header.
// Copyright (C) 1994, 1996, 1997, 1998, 2000, 2001 Free Software Foundation // Copyright (C) 1994, 1996, 1997, 1998, 2000, 2001, 2002
// Free Software Foundation
// This file is part of GNU CC. // This file is part of GNU CC.
// //
...@@ -50,6 +51,7 @@ namespace std ...@@ -50,6 +51,7 @@ namespace std
{ {
public: public:
bad_alloc() throw() { } bad_alloc() throw() { }
virtual ~bad_alloc() throw();
}; };
struct nothrow_t { }; struct nothrow_t { };
......
// Implementation file for the -*- C++ -*- dynamic memory management header. // Implementation file for the -*- C++ -*- dynamic memory management header.
// Copyright (C) 1996, 1997, 1998, 2000 Free Software Foundation // Copyright (C) 1996, 1997, 1998, 2000, 2001, 2002
// Free Software Foundation
// //
// This file is part of GNU CC. // This file is part of GNU CC.
// //
...@@ -42,3 +43,5 @@ std::set_new_handler (new_handler handler) ...@@ -42,3 +43,5 @@ std::set_new_handler (new_handler handler)
__new_handler = handler; __new_handler = handler;
return prev_handler; return prev_handler;
} }
std::bad_alloc::~bad_alloc() throw() { }
// Methods for type_info for -*- C++ -*- Run Time Type Identification. // Methods for type_info for -*- C++ -*- Run Time Type Identification.
// Copyright (C) 1994, 1996, 1998, 1999, 2000, 2001 Free Software Foundation // Copyright (C) 1994, 1996, 1998, 1999, 2000, 2001, 2002
// Free Software Foundation
// //
// This file is part of GNU CC. // This file is part of GNU CC.
// //
...@@ -39,6 +40,9 @@ std::type_info:: ...@@ -39,6 +40,9 @@ std::type_info::
~type_info () ~type_info ()
{ } { }
std::bad_cast::~bad_cast() throw() { }
std::bad_typeid::~bad_typeid() throw() { }
#if !__GXX_MERGED_TYPEINFO_NAMES #if !__GXX_MERGED_TYPEINFO_NAMES
// We can't rely on common symbols being shared between shared objects. // We can't rely on common symbols being shared between shared objects.
......
// RTTI support for -*- C++ -*- // RTTI support for -*- C++ -*-
// Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 2001 Free Software Foundation // Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002
// Free Software Foundation
// //
// This file is part of GNU CC. // This file is part of GNU CC.
// //
...@@ -129,6 +130,7 @@ namespace std ...@@ -129,6 +130,7 @@ namespace std
{ {
public: public:
bad_cast() throw() { } bad_cast() throw() { }
virtual ~bad_cast() throw();
}; };
/** If you use a NULL pointer in a @c typeid expression, this is thrown. */ /** If you use a NULL pointer in a @c typeid expression, this is thrown. */
...@@ -136,6 +138,7 @@ namespace std ...@@ -136,6 +138,7 @@ namespace std
{ {
public: public:
bad_typeid () throw() { } bad_typeid () throw() { }
virtual ~bad_typeid() throw();
}; };
} // namespace std } // namespace std
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment