|
|
4e62ec |
2005-02-18 Richard Henderson <rth@redhat.com>
|
|
|
4e62ec |
|
|
|
4e62ec |
PR libstdc++/10606
|
|
|
4e62ec |
* config/linker-map.gnu (CXXABI_1.3.1): Add __cxa_get_exception_ptr.
|
|
|
4e62ec |
* libsupc++/eh_catch.cc (__cxa_get_exception_ptr): New.
|
|
|
4e62ec |
* libsupc++/unwind-cxx.h (__cxa_get_exception_ptr): Declare.
|
|
|
4e62ec |
|
|
|
4e62ec |
--- libstdc++-v3/config/linker-map.gnu (revision 94498)
|
|
|
4e62ec |
+++ libstdc++-v3/config/linker-map.gnu (revision 95705)
|
|
|
4e62ec |
@@ -406,3 +410,9 @@ CXXABI_1.3 {
|
|
|
4e62ec |
local:
|
|
|
4e62ec |
*;
|
|
|
4e62ec |
};
|
|
|
4e62ec |
+
|
|
|
4e62ec |
+CXXABI_1.3.1 {
|
|
|
4e62ec |
+
|
|
|
4e62ec |
+ __cxa_get_exception_ptr;
|
|
|
4e62ec |
+
|
|
|
4e62ec |
+} CXXABI_1.3;
|
|
|
4e62ec |
--- libstdc++-v3/libsupc++/unwind-cxx.h (revision 94498)
|
|
|
4e62ec |
+++ libstdc++-v3/libsupc++/unwind-cxx.h (revision 95705)
|
|
|
4e62ec |
@@ -107,6 +107,7 @@ extern "C" void __cxa_throw (void *throw
|
|
|
4e62ec |
__attribute__((noreturn));
|
|
|
4e62ec |
|
|
|
4e62ec |
// Used to implement exception handlers.
|
|
|
4e62ec |
+extern "C" void *__cxa_get_exception_ptr (void *) throw();
|
|
|
4e62ec |
extern "C" void *__cxa_begin_catch (void *) throw();
|
|
|
4e62ec |
extern "C" void __cxa_end_catch ();
|
|
|
4e62ec |
extern "C" void __cxa_rethrow () __attribute__((noreturn));
|
|
|
4e62ec |
--- libstdc++-v3/libsupc++/eh_catch.cc (revision 94498)
|
|
|
4e62ec |
+++ libstdc++-v3/libsupc++/eh_catch.cc (revision 95705)
|
|
|
4e62ec |
@@ -33,6 +33,15 @@
|
|
|
4e62ec |
|
|
|
4e62ec |
using namespace __cxxabiv1;
|
|
|
4e62ec |
|
|
|
4e62ec |
+extern "C" void *
|
|
|
4e62ec |
+__cxxabiv1::__cxa_get_exception_ptr(void *exc_obj_in) throw()
|
|
|
4e62ec |
+{
|
|
|
4e62ec |
+ _Unwind_Exception *exceptionObject
|
|
|
4e62ec |
+ = reinterpret_cast <_Unwind_Exception *>(exc_obj_in);
|
|
|
4e62ec |
+ __cxa_exception *header = __get_exception_header_from_ue (exceptionObject);
|
|
|
4e62ec |
+
|
|
|
4e62ec |
+ return header->adjustedPtr;
|
|
|
4e62ec |
+}
|
|
|
4e62ec |
|
|
|
4e62ec |
extern "C" void *
|
|
|
4e62ec |
__cxa_begin_catch (void *exc_obj_in) throw()
|