Blame SOURCES/gcc34-CXXABI131.patch

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()