mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-10 20:39:58 +08:00
unwind-arm-common.h: Revert previous commit.
gcc: * ginclude/unwind-arm-common.h: Revert previous commit. libstdc++-v3: * libsupc++/unwind-cxx.h: Revert previous commit. From-SVN: r219392
This commit is contained in:
parent
82a19768cb
commit
4c470097be
@ -1,3 +1,7 @@
|
||||
2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
|
||||
|
||||
* ginclude/unwind-arm-common.h: Revert previous commit.
|
||||
|
||||
2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
|
||||
|
||||
* config.gcc (arm*-*-freebsd*): New configuration.
|
||||
|
@ -82,11 +82,7 @@ extern "C" {
|
||||
|
||||
struct _Unwind_Control_Block
|
||||
{
|
||||
#ifdef __FreeBSD__
|
||||
unsigned exception_class __attribute__((__mode__(__DI__)));
|
||||
#else
|
||||
char exception_class[8];
|
||||
#endif
|
||||
void (*exception_cleanup)(_Unwind_Reason_Code, _Unwind_Control_Block *);
|
||||
/* Unwinder cache, private fields for the unwinder's use */
|
||||
struct
|
||||
@ -185,11 +181,7 @@ extern "C" {
|
||||
|
||||
/* Support functions for the PR. */
|
||||
#define _Unwind_Exception _Unwind_Control_Block
|
||||
#ifdef __FreeBSD__
|
||||
typedef unsigned _Unwind_Exception_Class __attribute__((__mode__(__DI__)));
|
||||
#else
|
||||
typedef char _Unwind_Exception_Class[8];
|
||||
#endif
|
||||
|
||||
void * _Unwind_GetLanguageSpecificData (_Unwind_Context *);
|
||||
_Unwind_Ptr _Unwind_GetRegionStart (_Unwind_Context *);
|
||||
|
@ -1,3 +1,7 @@
|
||||
2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
|
||||
|
||||
* libsupc++/unwind-cxx.h: Revert previous commit.
|
||||
|
||||
2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
|
||||
|
||||
* configure.host: Add arm*-*-freebsd* port_specific_symbol_files.
|
||||
|
@ -235,7 +235,7 @@ __get_dependent_exception_from_ue (_Unwind_Exception *exc)
|
||||
return reinterpret_cast<__cxa_dependent_exception *>(exc + 1) - 1;
|
||||
}
|
||||
|
||||
#if defined (__ARM_EABI_UNWINDER__) && !defined (__FreeBSD__)
|
||||
#ifdef __ARM_EABI_UNWINDER__
|
||||
static inline bool
|
||||
__is_gxx_exception_class(_Unwind_Exception_Class c)
|
||||
{
|
||||
@ -309,7 +309,13 @@ __GXX_INIT_FORCED_UNWIND_CLASS(_Unwind_Exception_Class c)
|
||||
c[6] = 'R';
|
||||
c[7] = '\0';
|
||||
}
|
||||
#else // !__ARM_EABI_UNWINDER__ || __FreeBSD__
|
||||
|
||||
static inline void*
|
||||
__gxx_caught_object(_Unwind_Exception* eo)
|
||||
{
|
||||
return (void*)eo->barrier_cache.bitpattern[0];
|
||||
}
|
||||
#else // !__ARM_EABI_UNWINDER__
|
||||
// This is the primary exception class we report -- "GNUCC++\0".
|
||||
const _Unwind_Exception_Class __gxx_primary_exception_class
|
||||
= ((((((((_Unwind_Exception_Class) 'G'
|
||||
@ -333,16 +339,6 @@ const _Unwind_Exception_Class __gxx_dependent_exception_class
|
||||
<< 8 | (_Unwind_Exception_Class) '+')
|
||||
<< 8 | (_Unwind_Exception_Class) '\x01');
|
||||
|
||||
const _Unwind_Exception_Class __gxx_forced_unwind_class
|
||||
= ((((((((_Unwind_Exception_Class) 'G'
|
||||
<< 8 | (_Unwind_Exception_Class) 'N')
|
||||
<< 8 | (_Unwind_Exception_Class) 'U')
|
||||
<< 8 | (_Unwind_Exception_Class) 'C')
|
||||
<< 8 | (_Unwind_Exception_Class) 'F')
|
||||
<< 8 | (_Unwind_Exception_Class) 'O')
|
||||
<< 8 | (_Unwind_Exception_Class) 'R')
|
||||
<< 8 | (_Unwind_Exception_Class) '\0');
|
||||
|
||||
static inline bool
|
||||
__is_gxx_exception_class(_Unwind_Exception_Class c)
|
||||
{
|
||||
@ -350,12 +346,6 @@ __is_gxx_exception_class(_Unwind_Exception_Class c)
|
||||
|| c == __gxx_dependent_exception_class;
|
||||
}
|
||||
|
||||
static inline bool
|
||||
__is_gxx_forced_unwind_class(_Unwind_Exception_Class c)
|
||||
{
|
||||
return c == __gxx_forced_unwind_class;
|
||||
}
|
||||
|
||||
// Only checks for primary or dependent, but not that it is a C++ exception at
|
||||
// all.
|
||||
static inline bool
|
||||
@ -367,17 +357,6 @@ __is_dependent_exception(_Unwind_Exception_Class c)
|
||||
#define __GXX_INIT_PRIMARY_EXCEPTION_CLASS(c) c = __gxx_primary_exception_class
|
||||
#define __GXX_INIT_DEPENDENT_EXCEPTION_CLASS(c) \
|
||||
c = __gxx_dependent_exception_class
|
||||
#define __GXX_INIT_FORCED_UNWIND_CLASS(c) c = __gxx_forced_unwind_class
|
||||
#endif // __ARM_EABI_UNWINDER__ && !__FreeBSD__
|
||||
|
||||
#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
|
||||
|
Loading…
Reference in New Issue
Block a user