34 #define _UNWIND_CXX_H 1
46 typedef signed _Unwind_Sword
__attribute__((__mode__(__word__)));
47 typedef unsigned _Unwind_Word
__attribute__((__mode__(__word__)));
48 typedef unsigned _Unwind_Ptr
__attribute__((__mode__(__pointer__)));
49 typedef unsigned _Unwind_Exception_Class
__attribute__((__mode__(__DI__)));
50 typedef unsigned _Unwind_Internal_Ptr
__attribute__((__mode__(__pointer__)));
52 #pragma GCC visibility push(default)
101 #ifdef __ARM_EABI_UNWINDER__
106 int propagationCount;
132 #ifdef __ARM_EABI_UNWINDER__
151 #pragma GCC visibility push(hidden)
154 #pragma GCC visibility pop
157 extern "C" void __cxa_throw (
void *thrown_exception,
158 std::type_info *tinfo,
159 void (*dest) (
void *))
180 #ifdef __ARM_EABI_UNWINDER__
185 ctm_succeeded_with_ptr_to_base = 2
186 } __cxa_type_match_result;
187 extern "C" bool __cxa_type_match(_Unwind_Exception*,
const std::type_info*,
189 extern "C" void __cxa_begin_cleanup (_Unwind_Exception*);
190 extern "C" void __cxa_end_cleanup (
void);
196 static inline __cxa_exception *
203 static inline __cxa_exception *
209 #ifdef __ARM_EABI_UNWINDER__
239 return (
void*)eo->barrier_cache.bitpattern[0];
241 #else // !__ARM_EABI_UNWINDER__
244 = ((((((((_Unwind_Exception_Class)
'G'
245 << 8 | (_Unwind_Exception_Class)
'N')
246 << 8 | (_Unwind_Exception_Class)
'U')
247 << 8 | (_Unwind_Exception_Class)
'C')
248 << 8 | (_Unwind_Exception_Class)
'C')
249 << 8 | (_Unwind_Exception_Class)
'+')
250 << 8 | (_Unwind_Exception_Class)
'+')
251 << 8 | (_Unwind_Exception_Class)
'\0');
259 #define __GXX_INIT_EXCEPTION_CLASS(c) c = __gxx_exception_class
263 (
int, _Unwind_Action, _Unwind_Exception_Class,
264 struct _Unwind_Exception *,
struct _Unwind_Context *);
268 (
int, _Unwind_Action, _Unwind_Exception_Class,
269 struct _Unwind_Exception *,
struct _Unwind_Context *);
277 #endif // !__ARM_EABI_UNWINDER__
281 #pragma GCC visibility pop
283 #endif // _UNWIND_CXX_H
const _Unwind_Exception_Class __gxx_exception_class
void __cxa_free_dependent_exception(void *thrown_exception)
_Unwind_Exception unwindHeader
static __cxa_exception * __get_exception_header_from_ue(_Unwind_Exception *exc)
__cxa_eh_globals * __cxa_get_globals_fast()
unsigned int uncaughtExceptions
unsigned _Unwind_Word __attribute__((__mode__(__word__)))
void * __cxa_begin_catch(void *)
#define __GXX_INIT_EXCEPTION_CLASS(c)
void __cxa_rethrow() __attribute__((noreturn))
void __cxa_call_unexpected(void *) __attribute__((noreturn))
const unsigned char * languageSpecificData
void(* unexpectedHandler)()
void * __cxa_allocate_exception(size_t thrown_size)
static __cxa_exception * __get_exception_header_from_obj(void *ptr)
void __cxa_free_exception(void *thrown_exception)
__cxa_eh_globals * __cxa_get_globals()
void(* exceptionDestructor)(void *)
std::type_info * exceptionType
static bool __is_gxx_exception_class(_Unwind_Exception_Class c)
const unsigned char * actionRecord
void * __cxa_get_exception_ptr(void *)
std::terminate_handler terminateHandler
_Unwind_Reason_Code __gxx_personality_sj0(int, _Unwind_Action, _Unwind_Exception_Class, struct _Unwind_Exception *, struct _Unwind_Context *)
__cxa_exception * caughtExceptions
static void * __gxx_caught_object(_Unwind_Exception *eo)
void * __cxa_allocate_dependent_exception()
void __cxa_call_terminate(void *) __attribute__((noreturn))
void __cxa_throw(void *thrown_exception, std::type_info *tinfo, void(*dest)(void *)) __attribute__((noreturn))
__cxa_exception * nextException
_Unwind_Reason_Code __gxx_personality_v0(int, _Unwind_Action, _Unwind_Exception_Class, struct _Unwind_Exception *, struct _Unwind_Context *)