21 #include <__cxxabi_config.h>
23 #define _LIBCPPABI_VERSION 1002
24 #define _LIBCXXABI_NORETURN __attribute__((noreturn))
30 class _LIBCXXABI_TYPE_VIS type_info;
38 namespace __cxxabiv1 {
42 extern _LIBCXXABI_FUNC_VIS
void *
43 __cxa_allocate_exception(
size_t thrown_size)
throw();
44 extern _LIBCXXABI_FUNC_VIS
void
45 __cxa_free_exception(
void *thrown_exception)
throw();
48 extern _LIBCXXABI_FUNC_VIS _LIBCXXABI_NORETURN
void
49 __cxa_throw(
void *thrown_exception, std::type_info *tinfo,
50 void (*dest)(
void *));
53 extern _LIBCXXABI_FUNC_VIS
void *
54 __cxa_get_exception_ptr(
void *exceptionObject)
throw();
55 extern _LIBCXXABI_FUNC_VIS
void *
56 __cxa_begin_catch(
void *exceptionObject)
throw();
57 extern _LIBCXXABI_FUNC_VIS
void __cxa_end_catch();
58 #if defined(_LIBCXXABI_ARM_EHABI)
59 extern _LIBCXXABI_FUNC_VIS
bool
60 __cxa_begin_cleanup(
void *exceptionObject)
throw();
61 extern _LIBCXXABI_FUNC_VIS
void __cxa_end_cleanup();
63 extern _LIBCXXABI_FUNC_VIS std::type_info *__cxa_current_exception_type();
66 extern _LIBCXXABI_FUNC_VIS _LIBCXXABI_NORETURN
void __cxa_rethrow();
69 extern _LIBCXXABI_FUNC_VIS _LIBCXXABI_NORETURN
void __cxa_bad_cast(
void);
70 extern _LIBCXXABI_FUNC_VIS _LIBCXXABI_NORETURN
void __cxa_bad_typeid(
void);
71 extern _LIBCXXABI_FUNC_VIS _LIBCXXABI_NORETURN
void
72 __cxa_throw_bad_array_new_length(
void);
75 extern _LIBCXXABI_FUNC_VIS _LIBCXXABI_NORETURN
void __cxa_pure_virtual(
void);
78 extern _LIBCXXABI_FUNC_VIS _LIBCXXABI_NORETURN
void __cxa_deleted_virtual(
void);
82 extern _LIBCXXABI_FUNC_VIS
int __cxa_guard_acquire(uint32_t *);
83 extern _LIBCXXABI_FUNC_VIS
void __cxa_guard_release(uint32_t *);
84 extern _LIBCXXABI_FUNC_VIS
void __cxa_guard_abort(uint32_t *);
86 extern _LIBCXXABI_FUNC_VIS
int __cxa_guard_acquire(uint64_t *);
87 extern _LIBCXXABI_FUNC_VIS
void __cxa_guard_release(uint64_t *);
88 extern _LIBCXXABI_FUNC_VIS
void __cxa_guard_abort(uint64_t *);
92 extern _LIBCXXABI_FUNC_VIS
void *
93 __cxa_vec_new(
size_t element_count,
size_t element_size,
size_t padding_size,
94 void (*constructor)(
void *),
void (*destructor)(
void *));
96 extern _LIBCXXABI_FUNC_VIS
void *
97 __cxa_vec_new2(
size_t element_count,
size_t element_size,
size_t padding_size,
98 void (*constructor)(
void *),
void (*destructor)(
void *),
99 void *(*alloc)(
size_t),
void (*dealloc)(
void *));
101 extern _LIBCXXABI_FUNC_VIS
void *
102 __cxa_vec_new3(
size_t element_count,
size_t element_size,
size_t padding_size,
103 void (*constructor)(
void *),
void (*destructor)(
void *),
104 void *(*alloc)(
size_t),
void (*dealloc)(
void *,
size_t));
106 extern _LIBCXXABI_FUNC_VIS
void
107 __cxa_vec_ctor(
void *array_address,
size_t element_count,
size_t element_size,
108 void (*constructor)(
void *),
void (*destructor)(
void *));
110 extern _LIBCXXABI_FUNC_VIS
void __cxa_vec_dtor(
void *array_address,
111 size_t element_count,
113 void (*destructor)(
void *));
115 extern _LIBCXXABI_FUNC_VIS
void __cxa_vec_cleanup(
void *array_address,
116 size_t element_count,
118 void (*destructor)(
void *));
120 extern _LIBCXXABI_FUNC_VIS
void __cxa_vec_delete(
void *array_address,
123 void (*destructor)(
void *));
125 extern _LIBCXXABI_FUNC_VIS
void
126 __cxa_vec_delete2(
void *array_address,
size_t element_size,
size_t padding_size,
127 void (*destructor)(
void *),
void (*dealloc)(
void *));
129 extern _LIBCXXABI_FUNC_VIS
void
130 __cxa_vec_delete3(
void *__array_address,
size_t element_size,
131 size_t padding_size,
void (*destructor)(
void *),
132 void (*dealloc)(
void *,
size_t));
134 extern _LIBCXXABI_FUNC_VIS
void
135 __cxa_vec_cctor(
void *dest_array,
void *src_array,
size_t element_count,
136 size_t element_size,
void (*constructor)(
void *,
void *),
137 void (*destructor)(
void *));
140 extern _LIBCXXABI_FUNC_VIS
int __cxa_atexit(
void (*f)(
void *),
void *p,
142 extern _LIBCXXABI_FUNC_VIS
int __cxa_finalize(
void *);
145 extern _LIBCXXABI_FUNC_VIS
char *__cxa_demangle(
const char *mangled_name,
147 size_t *length,
int *status);
151 extern _LIBCXXABI_FUNC_VIS
void *__cxa_current_primary_exception() throw();
152 extern _LIBCXXABI_FUNC_VIS
void
153 __cxa_rethrow_primary_exception(
void *primary_exception);
154 extern _LIBCXXABI_FUNC_VIS
void
155 __cxa_increment_exception_refcount(
void *primary_exception) throw();
156 extern _LIBCXXABI_FUNC_VIS
void
157 __cxa_decrement_exception_refcount(
void *primary_exception) throw();
160 extern _LIBCXXABI_FUNC_VIS
bool __cxa_uncaught_exception() throw();
161 extern _LIBCXXABI_FUNC_VIS
unsigned int __cxa_uncaught_exceptions() throw();
163 #if defined(__linux__) || defined(__Fuchsia__)
166 extern _LIBCXXABI_FUNC_VIS
int __cxa_thread_atexit(
void (*)(
void *),
void *,
173 namespace abi = __cxxabiv1;
175 #endif // __cplusplus