44 #pragma GCC system_header
46 #pragma GCC visibility push(default)
61 typedef __cxa_cdtor_return_type (*__cxa_cdtor_type)(
void *);
65 __cxa_vec_new(
size_t __element_count,
size_t __element_size,
66 size_t __padding_size, __cxa_cdtor_type __constructor,
67 __cxa_cdtor_type __destructor);
70 __cxa_vec_new2(
size_t __element_count,
size_t __element_size,
71 size_t __padding_size, __cxa_cdtor_type __constructor,
72 __cxa_cdtor_type __destructor,
void *(*__alloc) (
size_t),
73 void (*__dealloc) (
void*));
76 __cxa_vec_new3(
size_t __element_count,
size_t __element_size,
77 size_t __padding_size, __cxa_cdtor_type __constructor,
78 __cxa_cdtor_type __destructor,
void *(*__alloc) (
size_t),
79 void (*__dealloc) (
void*,
size_t));
82 __cxa_vec_ctor_return_type
83 __cxa_vec_ctor(
void* __array_address,
size_t __element_count,
84 size_t __element_size, __cxa_cdtor_type __constructor,
85 __cxa_cdtor_type __destructor);
87 __cxa_vec_ctor_return_type
88 __cxa_vec_cctor(
void* __dest_array,
void* __src_array,
89 size_t __element_count,
size_t __element_size,
90 __cxa_cdtor_return_type (*__constructor) (
void*,
void*),
91 __cxa_cdtor_type __destructor);
95 __cxa_vec_dtor(
void* __array_address,
size_t __element_count,
96 size_t __element_size, __cxa_cdtor_type __destructor);
99 __cxa_vec_cleanup(
void* __array_address,
size_t __element_count,
size_t __s,
100 __cxa_cdtor_type __destructor) _GLIBCXX_NOTHROW;
104 __cxa_vec_delete(
void* __array_address,
size_t __element_size,
105 size_t __padding_size, __cxa_cdtor_type __destructor);
108 __cxa_vec_delete2(
void* __array_address,
size_t __element_size,
109 size_t __padding_size, __cxa_cdtor_type __destructor,
110 void (*__dealloc) (
void*));
113 __cxa_vec_delete3(
void* __array_address,
size_t __element_size,
114 size_t __padding_size, __cxa_cdtor_type __destructor,
115 void (*__dealloc) (
void*,
size_t));
118 __cxa_guard_acquire(__guard*);
121 __cxa_guard_release(__guard*) _GLIBCXX_NOTHROW;
124 __cxa_guard_abort(__guard*) _GLIBCXX_NOTHROW;
128 #ifdef _GLIBCXX_CDTOR_CALLABI
129 __cxa_atexit(
void (_GLIBCXX_CDTOR_CALLABI *)(
void*),
void*,
void*) _GLIBCXX_NOTHROW;
131 __cxa_atexit(
void (*)(
void*),
void*,
void*) _GLIBCXX_NOTHROW;
135 __cxa_finalize(
void*);
139 #ifdef _GLIBCXX_CDTOR_CALLABI
140 __cxa_thread_atexit(
void (_GLIBCXX_CDTOR_CALLABI *)(
void*),
void*,
void *) _GLIBCXX_NOTHROW;
142 __cxa_thread_atexit(
void (*)(
void*),
void*,
void *) _GLIBCXX_NOTHROW;
147 __cxa_pure_virtual(
void) __attribute__ ((__noreturn__));
150 __cxa_deleted_virtual(
void) __attribute__ ((__noreturn__));
154 __cxa_bad_cast() __attribute__((__noreturn__));
157 __cxa_bad_typeid() __attribute__((__noreturn__));
160 __cxa_throw_bad_array_new_length() __attribute__((__noreturn__));
204 __cxa_demangle(const
char* __mangled_name,
char* __output_buffer,
205 size_t* __length,
int* __status);
223 __fundamental_type_info(
const char* __n) :
std::type_info(__n) { }
226 ~__fundamental_type_info();
234 __array_type_info(
const char* __n) :
std::type_info(__n) { }
237 ~__array_type_info();
245 __function_type_info(
const char* __n) :
std::type_info(__n) { }
248 ~__function_type_info();
253 __is_function_p()
const;
261 __enum_type_info(
const char* __n) :
std::type_info(__n) { }
271 unsigned int __flags;
275 __pbase_type_info(
const char* __n,
int __quals,
277 :
std::type_info(__n), __flags(__quals), __pointee(__type)
281 ~__pbase_type_info();
287 __volatile_mask = 0x2,
288 __restrict_mask = 0x4,
289 __incomplete_mask = 0x8,
290 __incomplete_class_mask = 0x10,
291 __transaction_safe_mask = 0x20,
292 __noexcept_mask = 0x40
296 __pbase_type_info(
const __pbase_type_info&);
299 operator=(
const __pbase_type_info&);
304 unsigned int __outer)
const;
307 __pointer_catch(
const __pbase_type_info* __thr_type,
void** __thr_obj,
308 unsigned __outer)
const;
311 inline bool __pbase_type_info::
312 __pointer_catch (
const __pbase_type_info *thrown_type,
314 unsigned outer)
const
316 return __pointee->__do_catch (thrown_type->__pointee, thr_obj, outer + 2);
320 class __pointer_type_info :
public __pbase_type_info
324 __pointer_type_info(
const char* __n,
int __quals,
326 : __pbase_type_info (__n, __quals, __type) { }
330 ~__pointer_type_info();
335 __is_pointer_p()
const;
338 __pointer_catch(
const __pbase_type_info* __thr_type,
void** __thr_obj,
339 unsigned __outer)
const;
342 class __class_type_info;
345 class __pointer_to_member_type_info :
public __pbase_type_info
348 __class_type_info* __context;
351 __pointer_to_member_type_info(
const char* __n,
int __quals,
353 __class_type_info* __klass)
354 : __pbase_type_info(__n, __quals, __type), __context(__klass) { }
357 ~__pointer_to_member_type_info();
360 __pointer_to_member_type_info(
const __pointer_to_member_type_info&);
362 __pointer_to_member_type_info&
363 operator=(
const __pointer_to_member_type_info&);
367 __pointer_catch(
const __pbase_type_info* __thr_type,
void** __thr_obj,
368 unsigned __outer)
const;
372 class __base_class_type_info
375 const __class_type_info* __base_type;
376 #ifdef _GLIBCXX_LLP64
377 long long __offset_flags;
382 enum __offset_flags_masks
384 __virtual_mask = 0x1,
392 __is_virtual_p()
const
393 {
return __offset_flags & __virtual_mask; }
396 __is_public_p()
const
397 {
return __offset_flags & __public_mask; }
405 return static_cast<ptrdiff_t
>(__offset_flags) >> __offset_shift;
414 __class_type_info (
const char *__n) : type_info(__n) { }
417 ~__class_type_info ();
437 __contained_virtual_mask = __base_class_type_info::__virtual_mask,
440 __contained_public_mask = __base_class_type_info::__public_mask,
443 __contained_mask = 1 << __base_class_type_info::__hwm_bit,
445 __contained_private = __contained_mask,
446 __contained_public = __contained_mask | __contained_public_mask
449 struct __upcast_result;
450 struct __dyncast_result;
455 __do_upcast(
const __class_type_info* __dst_type,
void**__obj_ptr)
const;
458 __do_catch(
const type_info* __thr_type,
void** __thr_obj,
459 unsigned __outer)
const;
465 __do_upcast(
const __class_type_info* __dst,
const void* __obj,
466 __upcast_result& __restrict __result)
const;
475 __find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
476 const __class_type_info* __src_type,
477 const void* __src_ptr)
const;
487 __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
488 const __class_type_info* __dst_type,
const void* __obj_ptr,
489 const __class_type_info* __src_type,
const void* __src_ptr,
490 __dyncast_result& __result)
const;
497 __do_find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
498 const __class_type_info* __src_type,
499 const void* __src_ptr)
const;
503 class __si_class_type_info :
public __class_type_info
506 const __class_type_info* __base_type;
509 __si_class_type_info(
const char *__n,
const __class_type_info *
__base)
510 : __class_type_info(__n), __base_type(
__base) { }
513 ~__si_class_type_info();
516 __si_class_type_info(
const __si_class_type_info&);
518 __si_class_type_info&
519 operator=(
const __si_class_type_info&);
523 __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
524 const __class_type_info* __dst_type,
const void* __obj_ptr,
525 const __class_type_info* __src_type,
const void* __src_ptr,
526 __dyncast_result& __result)
const;
529 __do_find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
530 const __class_type_info* __src_type,
531 const void* __sub_ptr)
const;
534 __do_upcast(
const __class_type_info*__dst,
const void*__obj,
535 __upcast_result& __restrict __result)
const;
539 class __vmi_class_type_info :
public __class_type_info
542 unsigned int __flags;
543 unsigned int __base_count;
548 __base_class_type_info __base_info[1];
551 __vmi_class_type_info(
const char* __n,
int ___flags)
552 : __class_type_info(__n), __flags(___flags), __base_count(0) { }
555 ~__vmi_class_type_info();
560 __non_diamond_repeat_mask = 0x1,
561 __diamond_shaped_mask = 0x2,
562 __flags_unknown_mask = 0x10
568 __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
569 const __class_type_info* __dst_type,
const void* __obj_ptr,
570 const __class_type_info* __src_type,
const void* __src_ptr,
571 __dyncast_result& __result)
const;
574 __do_find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
575 const __class_type_info* __src_type,
576 const void* __src_ptr)
const;
579 __do_upcast(
const __class_type_info* __dst,
const void* __obj,
580 __upcast_result& __restrict __result)
const;
584 struct __cxa_exception;
585 struct __cxa_refcounted_exception;
586 struct __cxa_dependent_exception;
587 struct __cxa_eh_globals;
600 __dynamic_cast(
const void* __src_ptr,
601 const __class_type_info* __src_type,
602 const __class_type_info* __dst_type,
603 ptrdiff_t __src2dst);
613 __cxa_get_globals() _GLIBCXX_NOTHROW __attribute__ ((__const__));
616 __cxa_get_globals_fast() _GLIBCXX_NOTHROW __attribute__ ((__const__));
620 __cxa_free_exception(
void*) _GLIBCXX_NOTHROW;
624 __cxa_throw(
void*,
std::type_info*,
void (_GLIBCXX_CDTOR_CALLABI *) (
void *))
625 __attribute__((__noreturn__));
629 __cxa_get_exception_ptr(
void*) _GLIBCXX_NOTHROW __attribute__ ((__pure__));
632 __cxa_begin_catch(
void*) _GLIBCXX_NOTHROW;
638 __cxa_rethrow() __attribute__((__noreturn__));
643 __cxa_current_exception_type() _GLIBCXX_NOTHROW __attribute__ ((__pure__));
648 __cxa_dependent_exception*
649 __cxa_allocate_dependent_exception() _GLIBCXX_NOTHROW;
653 __cxa_free_dependent_exception(__cxa_dependent_exception*) _GLIBCXX_NOTHROW;
659 class __foreign_exception
661 virtual ~__foreign_exception() throw();
662 virtual
void __pure_dummy() = 0;
687 namespace abi = __cxxabiv1;
713 #pragma GCC visibility pop
ISO C++ entities toplevel namespace is std.
GNU extensions for public use.
constexpr _Iterator __base(_Iterator __it)
Exception thrown by __cxa_guard_acquire.
Base class for all library exceptions.