aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Redl <sebastian.redl@getdesigned.at>2008-08-21 19:37:23 +0200
committerPaolo Carlini <paolo@gcc.gnu.org>2008-08-21 17:37:23 +0000
commiteb5712c966473f563c24c8749e1f96d3acb671a2 (patch)
treec608fb572ab05cad4f8beb492653276b40318177
parent406f3538871593ccc0ed521bc7e15e563442843a (diff)
downloadgcc-eb5712c966473f563c24c8749e1f96d3acb671a2.zip
gcc-eb5712c966473f563c24c8749e1f96d3acb671a2.tar.gz
gcc-eb5712c966473f563c24c8749e1f96d3acb671a2.tar.bz2
eh_ptr.cc (__gxx_dependent_exception_cleanup): Call __cxa_free_dependent_exception.
2008-08-21 Sebastian Redl <sebastian.redl@getdesigned.at> * libsupc++/eh_ptr.cc (__gxx_dependent_exception_cleanup): Call __cxa_free_dependent_exception. From-SVN: r139402
-rw-r--r--libstdc++-v3/ChangeLog5
-rw-r--r--libstdc++-v3/libsupc++/eh_ptr.cc2
2 files changed, 7 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 64bfa34..4d15834 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,8 @@
+2008-08-21 Sebastian Redl <sebastian.redl@getdesigned.at>
+
+ * libsupc++/eh_ptr.cc (__gxx_dependent_exception_cleanup): Call
+ __cxa_free_dependent_exception.
+
2008-08-20 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/char_traits.h (char_traits<char16_t>::
diff --git a/libstdc++-v3/libsupc++/eh_ptr.cc b/libstdc++-v3/libsupc++/eh_ptr.cc
index 35ba5f9..ce6c172 100644
--- a/libstdc++-v3/libsupc++/eh_ptr.cc
+++ b/libstdc++-v3/libsupc++/eh_ptr.cc
@@ -199,6 +199,8 @@ __gxx_dependent_exception_cleanup (_Unwind_Reason_Code code,
if (code != _URC_FOREIGN_EXCEPTION_CAUGHT && code != _URC_NO_REASON)
__terminate (header->terminateHandler);
+ __cxa_free_dependent_exception (dep);
+
if (__gnu_cxx::__exchange_and_add_dispatch (&header->referenceCount, -1) == 0)
{
if (header->exceptionDestructor)