45#pragma GCC system_header
48#pragma GCC visibility push(default)
63 typedef __cxa_cdtor_return_type (*__cxa_cdtor_type)(
void *);
67 __cxa_vec_new(
size_t __element_count,
size_t __element_size,
68 size_t __padding_size, __cxa_cdtor_type __constructor,
69 __cxa_cdtor_type __destructor);
72 __cxa_vec_new2(
size_t __element_count,
size_t __element_size,
73 size_t __padding_size, __cxa_cdtor_type __constructor,
74 __cxa_cdtor_type __destructor,
void *(*__alloc) (
size_t),
75 void (*__dealloc) (
void*));
78 __cxa_vec_new3(
size_t __element_count,
size_t __element_size,
79 size_t __padding_size, __cxa_cdtor_type __constructor,
80 __cxa_cdtor_type __destructor,
void *(*__alloc) (
size_t),
81 void (*__dealloc) (
void*,
size_t));
84 __cxa_vec_ctor_return_type
85 __cxa_vec_ctor(
void* __array_address,
size_t __element_count,
86 size_t __element_size, __cxa_cdtor_type __constructor,
87 __cxa_cdtor_type __destructor);
89 __cxa_vec_ctor_return_type
90 __cxa_vec_cctor(
void* __dest_array,
void* __src_array,
91 size_t __element_count,
size_t __element_size,
92 __cxa_cdtor_return_type (*__constructor) (
void*,
void*),
93 __cxa_cdtor_type __destructor);
97 __cxa_vec_dtor(
void* __array_address,
size_t __element_count,
98 size_t __element_size, __cxa_cdtor_type __destructor);
101 __cxa_vec_cleanup(
void* __array_address,
size_t __element_count,
size_t __s,
102 __cxa_cdtor_type __destructor) _GLIBCXX_NOTHROW;
106 __cxa_vec_delete(
void* __array_address,
size_t __element_size,
107 size_t __padding_size, __cxa_cdtor_type __destructor);
110 __cxa_vec_delete2(
void* __array_address,
size_t __element_size,
111 size_t __padding_size, __cxa_cdtor_type __destructor,
112 void (*__dealloc) (
void*));
115 __cxa_vec_delete3(
void* __array_address,
size_t __element_size,
116 size_t __padding_size, __cxa_cdtor_type __destructor,
117 void (*__dealloc) (
void*,
size_t));
120 __cxa_guard_acquire(__guard*);
123 __cxa_guard_release(__guard*) _GLIBCXX_NOTHROW;
126 __cxa_guard_abort(__guard*) _GLIBCXX_NOTHROW;
130#ifdef _GLIBCXX_CDTOR_CALLABI
131 __cxa_atexit(
void (_GLIBCXX_CDTOR_CALLABI *)(
void*),
void*,
void*) _GLIBCXX_NOTHROW;
133 __cxa_atexit(
void (*)(
void*),
void*,
void*) _GLIBCXX_NOTHROW;
137 __cxa_finalize(
void*);
141#ifdef _GLIBCXX_CDTOR_CALLABI
142 __cxa_thread_atexit(
void (_GLIBCXX_CDTOR_CALLABI *)(
void*),
void*,
void *) _GLIBCXX_NOTHROW;
144 __cxa_thread_atexit(
void (*)(
void*),
void*,
void *) _GLIBCXX_NOTHROW;
149 __cxa_pure_virtual(
void) __attribute__ ((__noreturn__));
152 __cxa_deleted_virtual(
void) __attribute__ ((__noreturn__));
156 __cxa_bad_cast() __attribute__((__noreturn__));
159 __cxa_bad_typeid() __attribute__((__noreturn__));
162 __cxa_throw_bad_array_new_length() __attribute__((__noreturn__));
207 size_t* __length,
int* __status);
221 class __fundamental_type_info :
public std::type_info
225 __fundamental_type_info(
const char* __n) : std::type_info(__n) { }
228 ~__fundamental_type_info();
232 class __array_type_info :
public std::type_info
236 __array_type_info(
const char* __n) : std::type_info(__n) { }
239 ~__array_type_info();
243 class __function_type_info :
public std::type_info
247 __function_type_info(
const char* __n) : std::type_info(__n) { }
250 ~__function_type_info();
255 __is_function_p()
const;
259 class __enum_type_info :
public std::type_info
263 __enum_type_info(
const char* __n) : std::type_info(__n) { }
270 class __pbase_type_info :
public std::type_info
273 unsigned int __flags;
274 const std::type_info* __pointee;
277 __pbase_type_info(
const char* __n,
int __quals,
278 const std::type_info* __type)
279 : std::type_info(__n), __flags(__quals), __pointee(__type)
283 ~__pbase_type_info();
289 __volatile_mask = 0x2,
290 __restrict_mask = 0x4,
291 __incomplete_mask = 0x8,
292 __incomplete_class_mask = 0x10,
293 __transaction_safe_mask = 0x20,
294 __noexcept_mask = 0x40
298 __pbase_type_info(
const __pbase_type_info&);
301 operator=(
const __pbase_type_info&);
305 __do_catch(
const std::type_info* __thr_type,
void** __thr_obj,
306 unsigned int __outer)
const;
309 __pointer_catch(
const __pbase_type_info* __thr_type,
void** __thr_obj,
310 unsigned __outer)
const;
313 inline bool __pbase_type_info::
314 __pointer_catch (
const __pbase_type_info *thrown_type,
316 unsigned outer)
const
318 return __pointee->__do_catch (thrown_type->__pointee, thr_obj, outer + 2);
322 class __pointer_type_info :
public __pbase_type_info
326 __pointer_type_info(
const char* __n,
int __quals,
327 const std::type_info* __type)
328 : __pbase_type_info (__n, __quals, __type) { }
332 ~__pointer_type_info();
337 __is_pointer_p()
const;
340 __pointer_catch(
const __pbase_type_info* __thr_type,
void** __thr_obj,
341 unsigned __outer)
const;
344 class __class_type_info;
347 class __pointer_to_member_type_info :
public __pbase_type_info
350 __class_type_info* __context;
353 __pointer_to_member_type_info(
const char* __n,
int __quals,
354 const std::type_info* __type,
355 __class_type_info* __klass)
356 : __pbase_type_info(__n, __quals, __type), __context(__klass) { }
359 ~__pointer_to_member_type_info();
362 __pointer_to_member_type_info(
const __pointer_to_member_type_info&);
364 __pointer_to_member_type_info&
365 operator=(
const __pointer_to_member_type_info&);
369 __pointer_catch(
const __pbase_type_info* __thr_type,
void** __thr_obj,
370 unsigned __outer)
const;
374 class __base_class_type_info
377 const __class_type_info* __base_type;
379 long long __offset_flags;
384 enum __offset_flags_masks
386 __virtual_mask = 0x1,
394 __is_virtual_p()
const
395 {
return __offset_flags & __virtual_mask; }
398 __is_public_p()
const
399 {
return __offset_flags & __public_mask; }
407 return static_cast<ptrdiff_t
>(__offset_flags) >> __offset_shift;
412 class __class_type_info :
public std::type_info
416 __class_type_info (
const char *__n) : type_info(__n) { }
419 ~__class_type_info ();
439 __contained_virtual_mask = __base_class_type_info::__virtual_mask,
442 __contained_public_mask = __base_class_type_info::__public_mask,
445 __contained_mask = 1 << __base_class_type_info::__hwm_bit,
447 __contained_private = __contained_mask,
448 __contained_public = __contained_mask | __contained_public_mask
451 struct __upcast_result;
452 struct __dyncast_result;
457 __do_upcast(
const __class_type_info* __dst_type,
void**__obj_ptr)
const;
460 __do_catch(
const type_info* __thr_type,
void** __thr_obj,
461 unsigned __outer)
const;
467 __do_upcast(
const __class_type_info* __dst,
const void* __obj,
468 __upcast_result& __restrict __result)
const;
477 __find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
478 const __class_type_info* __src_type,
479 const void* __src_ptr)
const;
489 __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
490 const __class_type_info* __dst_type,
const void* __obj_ptr,
491 const __class_type_info* __src_type,
const void* __src_ptr,
492 __dyncast_result& __result)
const;
499 __do_find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
500 const __class_type_info* __src_type,
501 const void* __src_ptr)
const;
505 class __si_class_type_info :
public __class_type_info
508 const __class_type_info* __base_type;
511 __si_class_type_info(
const char *__n,
const __class_type_info *__base)
512 : __class_type_info(__n), __base_type(
__base) { }
515 ~__si_class_type_info();
518 __si_class_type_info(
const __si_class_type_info&);
520 __si_class_type_info&
521 operator=(
const __si_class_type_info&);
525 __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
526 const __class_type_info* __dst_type,
const void* __obj_ptr,
527 const __class_type_info* __src_type,
const void* __src_ptr,
528 __dyncast_result& __result)
const;
531 __do_find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
532 const __class_type_info* __src_type,
533 const void* __sub_ptr)
const;
536 __do_upcast(
const __class_type_info*__dst,
const void*__obj,
537 __upcast_result& __restrict __result)
const;
541 class __vmi_class_type_info :
public __class_type_info
544 unsigned int __flags;
545 unsigned int __base_count;
550 __base_class_type_info __base_info[1];
553 __vmi_class_type_info(
const char* __n,
int ___flags)
554 : __class_type_info(__n), __flags(___flags), __base_count(0) { }
557 ~__vmi_class_type_info();
562 __non_diamond_repeat_mask = 0x1,
563 __diamond_shaped_mask = 0x2,
564 __flags_unknown_mask = 0x10
570 __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
571 const __class_type_info* __dst_type,
const void* __obj_ptr,
572 const __class_type_info* __src_type,
const void* __src_ptr,
573 __dyncast_result& __result)
const;
576 __do_find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
577 const __class_type_info* __src_type,
578 const void* __src_ptr)
const;
581 __do_upcast(
const __class_type_info* __dst,
const void* __obj,
582 __upcast_result& __restrict __result)
const;
586 struct __cxa_exception;
587 struct __cxa_refcounted_exception;
588 struct __cxa_dependent_exception;
589 struct __cxa_eh_globals;
602 __dynamic_cast(
const void* __src_ptr,
603 const __class_type_info* __src_type,
604 const __class_type_info* __dst_type,
605 ptrdiff_t __src2dst);
615 __cxa_get_globals() _GLIBCXX_NOTHROW __attribute__ ((__const__));
618 __cxa_get_globals_fast() _GLIBCXX_NOTHROW __attribute__ ((__const__));
622 __cxa_free_exception(
void*) _GLIBCXX_NOTHROW;
626 __cxa_throw(
void*, std::type_info*,
void (_GLIBCXX_CDTOR_CALLABI *) (
void *))
627 __attribute__((__noreturn__));
631 __cxa_get_exception_ptr(
void*) _GLIBCXX_NOTHROW __attribute__ ((__pure__));
634 __cxa_begin_catch(
void*) _GLIBCXX_NOTHROW;
640 __cxa_rethrow() __attribute__((__noreturn__));
645 __cxa_current_exception_type() _GLIBCXX_NOTHROW __attribute__ ((__pure__));
650 __cxa_dependent_exception*
651 __cxa_allocate_dependent_exception() _GLIBCXX_NOTHROW;
655 __cxa_free_dependent_exception(__cxa_dependent_exception*) _GLIBCXX_NOTHROW;
661 class __foreign_exception
663 virtual ~__foreign_exception() throw();
664 virtual
void __pure_dummy() = 0;
689namespace
abi = __cxxabiv1;
709 recursive_init_error() _GLIBCXX_NOTHROW;
710 virtual ~recursive_init_error() _GLIBCXX_NOTHROW;
715#pragma GCC visibility pop
char * __cxa_demangle(const char *__mangled_name, char *__output_buffer, size_t *__length, int *__status)
Demangling routine. ABI-mandated entry point in the C++ runtime library for demangling.
GNU extensions for public use.
The cross-vendor C++ Application Binary Interface. A namespace alias to __cxxabiv1,...
constexpr _Iterator __base(_Iterator __it)
Base class for all library exceptions.