diff options
author | kan <kan@FreeBSD.org> | 2005-06-03 03:29:38 +0000 |
---|---|---|
committer | kan <kan@FreeBSD.org> | 2005-06-03 03:29:38 +0000 |
commit | 3b6c93380e20c56b8151f9c6fc3916670b987df5 (patch) | |
tree | c4e455c4fe8d2a3ed1d621536386e3e252ad36bc /contrib/libstdc++/libsupc++ | |
parent | 2156e40a831a8e0ab68e4bc091c2940bf46ca6df (diff) | |
download | FreeBSD-src-3b6c93380e20c56b8151f9c6fc3916670b987df5.zip FreeBSD-src-3b6c93380e20c56b8151f9c6fc3916670b987df5.tar.gz |
Gcc 3.4.4 C++ support bits.
Diffstat (limited to 'contrib/libstdc++/libsupc++')
-rw-r--r-- | contrib/libstdc++/libsupc++/eh_globals.cc | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/contrib/libstdc++/libsupc++/eh_globals.cc b/contrib/libstdc++/libsupc++/eh_globals.cc index 4276022..66971fe 100644 --- a/contrib/libstdc++/libsupc++/eh_globals.cc +++ b/contrib/libstdc++/libsupc++/eh_globals.cc @@ -48,7 +48,17 @@ static void get_globals_dtor (void *ptr) { if (ptr) - std::free (ptr); + { + __cxa_exception *exn, *next; + exn = ((__cxa_eh_globals *) ptr)->caughtExceptions; + while (exn) + { + next = exn->nextException; + _Unwind_DeleteException (&exn->unwindHeader); + exn = next; + } + std::free (ptr); + } } static void |