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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48687
138bc75d-0d04-0410-961f-
82ee72b054a4
+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 '/'.
// -*- 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.
std::exception::~exception() throw() { }
+std::bad_exception::~bad_exception() throw() { }
+
const char*
std::exception::what() const throw()
{
// 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.
//
{
public:
bad_exception() throw() { }
+ virtual ~bad_exception() throw();
};
/// If you write a replacement %terminate handler, it must be of this type.
// 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.
//
{
public:
bad_alloc() throw() { }
+ virtual ~bad_alloc() throw();
};
struct nothrow_t { };
// 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.
//
__new_handler = handler;
return prev_handler;
}
+
+std::bad_alloc::~bad_alloc() throw() { }
// 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.
//
~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.
// 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.
//
{
public:
bad_cast() throw() { }
+ virtual ~bad_cast() throw();
};
/** If you use a NULL pointer in a @c typeid expression, this is thrown. */
{
public:
bad_typeid () throw() { }
+ virtual ~bad_typeid() throw();
};
} // namespace std