From eb5712c966473f563c24c8749e1f96d3acb671a2 Mon Sep 17 00:00:00 2001 From: Sebastian Redl Date: Thu, 21 Aug 2008 19:37:23 +0200 Subject: [PATCH] eh_ptr.cc (__gxx_dependent_exception_cleanup): Call __cxa_free_dependent_exception. 2008-08-21 Sebastian Redl * libsupc++/eh_ptr.cc (__gxx_dependent_exception_cleanup): Call __cxa_free_dependent_exception. From-SVN: r139402 --- libstdc++-v3/ChangeLog | 5 +++++ libstdc++-v3/libsupc++/eh_ptr.cc | 2 ++ 2 files changed, 7 insertions(+) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 64bfa342384..4d158348e75 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2008-08-21 Sebastian Redl + + * libsupc++/eh_ptr.cc (__gxx_dependent_exception_cleanup): Call + __cxa_free_dependent_exception. + 2008-08-20 Paolo Carlini * include/bits/char_traits.h (char_traits:: diff --git a/libstdc++-v3/libsupc++/eh_ptr.cc b/libstdc++-v3/libsupc++/eh_ptr.cc index 35ba5f90b87..ce6c1720005 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)