aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <pcarlini@unitus.it>2002-01-09 21:39:27 +0100
committerPaolo Carlini <paolo@gcc.gnu.org>2002-01-09 20:39:27 +0000
commitd66ae36a8b9a73f2ba22368e8e2ffa1bbdccf5ec (patch)
tree65ed177f4327068dadde31bbc8ee89fbb508fca7
parent30c1fa7651633029f1804cc37a9e4e824736b577 (diff)
downloadgcc-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/ChangeLog20
-rw-r--r--libstdc++-v3/libsupc++/eh_exception.cc4
-rw-r--r--libstdc++-v3/libsupc++/exception4
-rw-r--r--libstdc++-v3/libsupc++/new4
-rw-r--r--libstdc++-v3/libsupc++/new_handler.cc5
-rw-r--r--libstdc++-v3/libsupc++/tinfo.cc6
-rw-r--r--libstdc++-v3/libsupc++/typeinfo5
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