OSDN Git Service

* config/os/hpux/os_defines.h: Define _LIBUNWIND_STD_ABI if we are
authorsje <sje@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 27 May 2003 21:45:48 +0000 (21:45 +0000)
committersje <sje@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 27 May 2003 21:45:48 +0000 (21:45 +0000)
on IA64 HP-UX.
* libsupc++/eh_throw.cc: Don't call _Unwind_Resume_or_Rethrow if
_LIBUNWIND_STD_ABI is set.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@67193 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/config/os/hpux/os_defines.h
libstdc++-v3/libsupc++/eh_throw.cc

index 49115a4..5e70b6e 100644 (file)
@@ -1,3 +1,10 @@
+2003-05-27  Steve Ellcey  <sje@cup.hp.com>
+
+       * config/os/hpux/os_defines.h: Define _LIBUNWIND_STD_ABI if we are
+       on IA64 HP-UX.
+       * libsupc++/eh_throw.cc: Don't call _Unwind_Resume_or_Rethrow if
+       _LIBUNWIND_STD_ABI is set.
+
 2003-05-26  Brendan Kehoe  <brendan@zen.org>
 
        * include/bits/locale_facets.tcc (do_get): Honor $22.2.6.3.3/8 and
index 87d9d4f..27951c1 100644 (file)
@@ -84,6 +84,13 @@ namespace std
 typedef long int __padding_type;
 #endif
 
+// GCC on IA64 HP-UX uses the HP-UX system unwind library,
+// it does not have the _Unwind_Resume_or_Rethrow entry point
+// because that is not part of the standard IA64 Unwind ABI.
+#if defined (__ia64__)
+#define _LIBUNWIND_STD_ABI 1
+#endif
+
 /* We need explicit instantiation of the atomicity lock on HPPA if
    there is no weak support.  */
 #if !defined(_GLIBCPP_SUPPORTS_WEAK) && defined (__hppa__)
index c69c021..54d10fb 100644 (file)
@@ -98,8 +98,12 @@ __cxa_rethrow ()
 #ifdef _GLIBCPP_SJLJ_EXCEPTIONS
       _Unwind_SjLj_Resume_or_Rethrow (&header->unwindHeader);
 #else
+#ifdef _LIBUNWIND_STD_ABI
+      _Unwind_RaiseException (&header->unwindHeader);
+#else
       _Unwind_Resume_or_Rethrow (&header->unwindHeader);
 #endif
+#endif
   
       // Some sort of unwinding error.  Note that terminate is a handler.
       __cxa_begin_catch (&header->unwindHeader);