diff options
author | attilio <attilio@FreeBSD.org> | 2013-02-04 22:10:01 +0000 |
---|---|---|
committer | attilio <attilio@FreeBSD.org> | 2013-02-04 22:10:01 +0000 |
commit | d3b7ec3a087fe017933d12d65a35cae1d1a00914 (patch) | |
tree | ab3d468dc0be6c80a1fb354da0786f9b3853ac34 /contrib/libstdc++ | |
parent | 0d3b58aee00948d85d75a9d3d222deb454afc98e (diff) | |
parent | cfd3c02e72a8574bd02f57cd649cc2a4138d83ef (diff) | |
download | FreeBSD-src-d3b7ec3a087fe017933d12d65a35cae1d1a00914.zip FreeBSD-src-d3b7ec3a087fe017933d12d65a35cae1d1a00914.tar.gz |
MFC
Diffstat (limited to 'contrib/libstdc++')
-rw-r--r-- | contrib/libstdc++/libsupc++/unwind-cxx.h | 20 |
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 |