diff options
author | Paolo Carlini <pcarlini@unitus.it> | 2002-01-09 21:39:27 +0100 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2002-01-09 20:39:27 +0000 |
commit | d66ae36a8b9a73f2ba22368e8e2ffa1bbdccf5ec (patch) | |
tree | 65ed177f4327068dadde31bbc8ee89fbb508fca7 | |
parent | 30c1fa7651633029f1804cc37a9e4e824736b577 (diff) | |
download | gcc-d66ae36a8b9a73f2ba22368e8e2ffa1bbdccf5ec.zip gcc-d66ae36a8b9a73f2ba22368e8e2ffa1bbdccf5ec.tar.gz gcc-d66ae36a8b9a73f2ba22368e8e2ffa1bbdccf5ec.tar.bz2 |
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
-rw-r--r-- | libstdc++-v3/ChangeLog | 20 | ||||
-rw-r--r-- | libstdc++-v3/libsupc++/eh_exception.cc | 4 | ||||
-rw-r--r-- | libstdc++-v3/libsupc++/exception | 4 | ||||
-rw-r--r-- | libstdc++-v3/libsupc++/new | 4 | ||||
-rw-r--r-- | libstdc++-v3/libsupc++/new_handler.cc | 5 | ||||
-rw-r--r-- | libstdc++-v3/libsupc++/tinfo.cc | 6 | ||||
-rw-r--r-- | libstdc++-v3/libsupc++/typeinfo | 5 |
7 files changed, 42 insertions, 6 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index b06d54e..da64dcb 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,23 @@ +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> * include/Makefile.am (c_base_srcdir): Remove duplicate '/'. diff --git a/libstdc++-v3/libsupc++/eh_exception.cc b/libstdc++-v3/libsupc++/eh_exception.cc index 328a89e..a581be7 100644 --- a/libstdc++-v3/libsupc++/eh_exception.cc +++ b/libstdc++-v3/libsupc++/eh_exception.cc @@ -1,5 +1,5 @@ // -*- 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 // // This file is part of GNU CC. @@ -35,6 +35,8 @@ std::exception::~exception() throw() { } +std::bad_exception::~bad_exception() throw() { } + const char* std::exception::what() const throw() { diff --git a/libstdc++-v3/libsupc++/exception b/libstdc++-v3/libsupc++/exception index 55dd872..aea61ff 100644 --- a/libstdc++-v3/libsupc++/exception +++ b/libstdc++-v3/libsupc++/exception @@ -1,6 +1,7 @@ // 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. // @@ -62,6 +63,7 @@ namespace std { public: bad_exception() throw() { } + virtual ~bad_exception() throw(); }; /// If you write a replacement %terminate handler, it must be of this type. diff --git a/libstdc++-v3/libsupc++/new b/libstdc++-v3/libsupc++/new index 0669f6d..358aa1d 100644 --- a/libstdc++-v3/libsupc++/new +++ b/libstdc++-v3/libsupc++/new @@ -1,6 +1,7 @@ // 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. // @@ -50,6 +51,7 @@ namespace std { public: bad_alloc() throw() { } + virtual ~bad_alloc() throw(); }; struct nothrow_t { }; diff --git a/libstdc++-v3/libsupc++/new_handler.cc b/libstdc++-v3/libsupc++/new_handler.cc index 2d3937e..ed34bc8 100644 --- a/libstdc++-v3/libsupc++/new_handler.cc +++ b/libstdc++-v3/libsupc++/new_handler.cc @@ -1,6 +1,7 @@ // 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. // @@ -42,3 +43,5 @@ std::set_new_handler (new_handler handler) __new_handler = handler; return prev_handler; } + +std::bad_alloc::~bad_alloc() throw() { } diff --git a/libstdc++-v3/libsupc++/tinfo.cc b/libstdc++-v3/libsupc++/tinfo.cc index 34b0060..1eecdeb 100644 --- a/libstdc++-v3/libsupc++/tinfo.cc +++ b/libstdc++-v3/libsupc++/tinfo.cc @@ -1,5 +1,6 @@ // 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. // @@ -39,6 +40,9 @@ std::type_info:: ~type_info () { } +std::bad_cast::~bad_cast() throw() { } +std::bad_typeid::~bad_typeid() throw() { } + #if !__GXX_MERGED_TYPEINFO_NAMES // We can't rely on common symbols being shared between shared objects. diff --git a/libstdc++-v3/libsupc++/typeinfo b/libstdc++-v3/libsupc++/typeinfo index c45f544..336fcc0 100644 --- a/libstdc++-v3/libsupc++/typeinfo +++ b/libstdc++-v3/libsupc++/typeinfo @@ -1,5 +1,6 @@ // 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. // @@ -129,6 +130,7 @@ namespace std { public: bad_cast() throw() { } + virtual ~bad_cast() throw(); }; /** If you use a NULL pointer in a @c typeid expression, this is thrown. */ @@ -136,6 +138,7 @@ namespace std { public: bad_typeid () throw() { } + virtual ~bad_typeid() throw(); }; } // namespace std |