summaryrefslogtreecommitdiffstats
path: root/contrib/libstdc++/libsupc++/unwind-cxx.h
diff options
context:
space:
mode:
authorattilio <attilio@FreeBSD.org>2013-02-04 22:10:01 +0000
committerattilio <attilio@FreeBSD.org>2013-02-04 22:10:01 +0000
commitd3b7ec3a087fe017933d12d65a35cae1d1a00914 (patch)
treeab3d468dc0be6c80a1fb354da0786f9b3853ac34 /contrib/libstdc++/libsupc++/unwind-cxx.h
parent0d3b58aee00948d85d75a9d3d222deb454afc98e (diff)
parentcfd3c02e72a8574bd02f57cd649cc2a4138d83ef (diff)
downloadFreeBSD-src-d3b7ec3a087fe017933d12d65a35cae1d1a00914.zip
FreeBSD-src-d3b7ec3a087fe017933d12d65a35cae1d1a00914.tar.gz
MFC
Diffstat (limited to 'contrib/libstdc++/libsupc++/unwind-cxx.h')
-rw-r--r--contrib/libstdc++/libsupc++/unwind-cxx.h20
1 files changed, 11 insertions, 9 deletions
diff --git a/contrib/libstdc++/libsupc++/unwind-cxx.h b/contrib/libstdc++/libsupc++/unwind-cxx.h
index c5636556..523c054 100644
--- a/contrib/libstdc++/libsupc++/unwind-cxx.h
+++ b/contrib/libstdc++/libsupc++/unwind-cxx.h
@@ -173,7 +173,7 @@ __get_exception_header_from_ue (_Unwind_Exception *exc)
return reinterpret_cast<__cxa_exception *>(exc + 1) - 1;
}
-#ifdef __ARM_EABI_UNWINDER__
+#if defined(__ARM_EABI_UNWINDER__) && !defined(__FreeBSD__)
static inline bool
__is_gxx_exception_class(_Unwind_Exception_Class c)
{
@@ -200,13 +200,7 @@ __GXX_INIT_EXCEPTION_CLASS(_Unwind_Exception_Class c)
c[6] = '+';
c[7] = '\0';
}
-
-static inline void*
-__gxx_caught_object(_Unwind_Exception* eo)
-{
- return (void*)eo->barrier_cache.bitpattern[0];
-}
-#else // !__ARM_EABI_UNWINDER__
+#else // !__ARM_EABI_UNWINDER__ || __FreeBSD__
// This is the exception class we report -- "GNUCC++\0".
const _Unwind_Exception_Class __gxx_exception_class
= ((((((((_Unwind_Exception_Class) 'G'
@@ -223,8 +217,16 @@ __is_gxx_exception_class(_Unwind_Exception_Class c)
{
return c == __gxx_exception_class;
}
-
#define __GXX_INIT_EXCEPTION_CLASS(c) c = __gxx_exception_class
+#endif
+
+#ifdef __ARM_EABI_UNWINDER__
+static inline void*
+__gxx_caught_object(_Unwind_Exception* eo)
+{
+ return (void*)eo->barrier_cache.bitpattern[0];
+}
+#else // !__ARM_EABI_UNWINDER__
// GNU C++ personality routine, Version 0.
extern "C" _Unwind_Reason_Code __gxx_personality_v0
OpenPOWER on IntegriCloud