45 #pragma GCC system_header
47 #pragma GCC visibility push(default)
54 #ifndef _GLIBCXX_CDTOR_CALLABI
55 #define _GLIBCXX_CDTOR_CALLABI
65 typedef __cxa_cdtor_return_type (*__cxa_cdtor_type)(
void *);
69 __cxa_vec_new(
size_t __element_count,
size_t __element_size,
70 size_t __padding_size, __cxa_cdtor_type __constructor,
71 __cxa_cdtor_type __destructor);
74 __cxa_vec_new2(
size_t __element_count,
size_t __element_size,
75 size_t __padding_size, __cxa_cdtor_type __constructor,
76 __cxa_cdtor_type __destructor,
void *(*__alloc) (
size_t),
77 void (*__dealloc) (
void*));
80 __cxa_vec_new3(
size_t __element_count,
size_t __element_size,
81 size_t __padding_size, __cxa_cdtor_type __constructor,
82 __cxa_cdtor_type __destructor,
void *(*__alloc) (
size_t),
83 void (*__dealloc) (
void*,
size_t));
86 __cxa_vec_ctor_return_type
87 __cxa_vec_ctor(
void* __array_address,
size_t __element_count,
88 size_t __element_size, __cxa_cdtor_type __constructor,
89 __cxa_cdtor_type __destructor);
91 __cxa_vec_ctor_return_type
92 __cxa_vec_cctor(
void* __dest_array,
void* __src_array,
93 size_t __element_count,
size_t __element_size,
94 __cxa_cdtor_return_type (*__constructor) (
void*,
void*),
95 __cxa_cdtor_type __destructor);
99 __cxa_vec_dtor(
void* __array_address,
size_t __element_count,
100 size_t __element_size, __cxa_cdtor_type __destructor);
103 __cxa_vec_cleanup(
void* __array_address,
size_t __element_count,
size_t __s,
104 __cxa_cdtor_type __destructor) _GLIBCXX_NOTHROW;
108 __cxa_vec_delete(
void* __array_address,
size_t __element_size,
109 size_t __padding_size, __cxa_cdtor_type __destructor);
112 __cxa_vec_delete2(
void* __array_address,
size_t __element_size,
113 size_t __padding_size, __cxa_cdtor_type __destructor,
114 void (*__dealloc) (
void*));
117 __cxa_vec_delete3(
void* __array_address,
size_t __element_size,
118 size_t __padding_size, __cxa_cdtor_type __destructor,
119 void (*__dealloc) (
void*,
size_t));
122 __cxa_guard_acquire(__guard*);
125 __cxa_guard_release(__guard*) _GLIBCXX_NOTHROW;
128 __cxa_guard_abort(__guard*) _GLIBCXX_NOTHROW;
132 __cxa_atexit(
void (*)(
void*),
void*,
void*) _GLIBCXX_NOTHROW;
135 __cxa_finalize(
void*);
139 __cxa_pure_virtual(
void) __attribute__ ((__noreturn__));
142 __cxa_deleted_virtual(
void) __attribute__ ((__noreturn__));
146 __cxa_bad_cast() __attribute__((__noreturn__));
149 __cxa_bad_typeid() __attribute__((__noreturn__));
193 __cxa_demangle(const
char* __mangled_name,
char* __output_buffer,
194 size_t* __length,
int* __status);
212 __fundamental_type_info(
const char* __n) : std::type_info(__n) { }
215 ~__fundamental_type_info();
223 __array_type_info(
const char* __n) : std::type_info(__n) { }
226 ~__array_type_info();
234 __function_type_info(
const char* __n) : std::type_info(__n) { }
237 ~__function_type_info();
242 __is_function_p()
const;
250 __enum_type_info(
const char* __n) : std::type_info(__n) { }
260 unsigned int __flags;
264 __pbase_type_info(
const char* __n,
int __quals,
266 : std::type_info(__n), __flags(__quals), __pointee(__type)
270 ~__pbase_type_info();
276 __volatile_mask = 0x2,
277 __restrict_mask = 0x4,
278 __incomplete_mask = 0x8,
279 __incomplete_class_mask = 0x10
283 __pbase_type_info(
const __pbase_type_info&);
286 operator=(
const __pbase_type_info&);
291 unsigned int __outer)
const;
294 __pointer_catch(
const __pbase_type_info* __thr_type,
void** __thr_obj,
295 unsigned __outer)
const;
299 class __pointer_type_info :
public __pbase_type_info
303 __pointer_type_info(
const char* __n,
int __quals,
305 : __pbase_type_info (__n, __quals, __type) { }
309 ~__pointer_type_info();
314 __is_pointer_p()
const;
317 __pointer_catch(
const __pbase_type_info* __thr_type,
void** __thr_obj,
318 unsigned __outer)
const;
321 class __class_type_info;
324 class __pointer_to_member_type_info :
public __pbase_type_info
327 __class_type_info* __context;
330 __pointer_to_member_type_info(
const char* __n,
int __quals,
332 __class_type_info* __klass)
333 : __pbase_type_info(__n, __quals, __type), __context(__klass) { }
336 ~__pointer_to_member_type_info();
339 __pointer_to_member_type_info(
const __pointer_to_member_type_info&);
341 __pointer_to_member_type_info&
342 operator=(
const __pointer_to_member_type_info&);
346 __pointer_catch(
const __pbase_type_info* __thr_type,
void** __thr_obj,
347 unsigned __outer)
const;
351 class __base_class_type_info
354 const __class_type_info* __base_type;
357 enum __offset_flags_masks
359 __virtual_mask = 0x1,
367 __is_virtual_p()
const
368 {
return __offset_flags & __virtual_mask; }
371 __is_public_p()
const
372 {
return __offset_flags & __public_mask; }
380 return static_cast<ptrdiff_t
>(__offset_flags) >> __offset_shift;
389 __class_type_info (
const char *__n) : type_info(__n) { }
392 ~__class_type_info ();
412 __contained_virtual_mask = __base_class_type_info::__virtual_mask,
415 __contained_public_mask = __base_class_type_info::__public_mask,
418 __contained_mask = 1 << __base_class_type_info::__hwm_bit,
420 __contained_private = __contained_mask,
421 __contained_public = __contained_mask | __contained_public_mask
424 struct __upcast_result;
425 struct __dyncast_result;
430 __do_upcast(
const __class_type_info* __dst_type,
void**__obj_ptr)
const;
433 __do_catch(
const type_info* __thr_type,
void** __thr_obj,
434 unsigned __outer)
const;
440 __do_upcast(
const __class_type_info* __dst,
const void* __obj,
441 __upcast_result& __restrict __result)
const;
450 __find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
451 const __class_type_info* __src_type,
452 const void* __src_ptr)
const;
462 __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
463 const __class_type_info* __dst_type,
const void* __obj_ptr,
464 const __class_type_info* __src_type,
const void* __src_ptr,
465 __dyncast_result& __result)
const;
472 __do_find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
473 const __class_type_info* __src_type,
474 const void* __src_ptr)
const;
478 class __si_class_type_info :
public __class_type_info
481 const __class_type_info* __base_type;
484 __si_class_type_info(
const char *__n,
const __class_type_info *
__base)
485 : __class_type_info(__n), __base_type(__base) { }
488 ~__si_class_type_info();
491 __si_class_type_info(
const __si_class_type_info&);
493 __si_class_type_info&
494 operator=(
const __si_class_type_info&);
498 __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
499 const __class_type_info* __dst_type,
const void* __obj_ptr,
500 const __class_type_info* __src_type,
const void* __src_ptr,
501 __dyncast_result& __result)
const;
504 __do_find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
505 const __class_type_info* __src_type,
506 const void* __sub_ptr)
const;
509 __do_upcast(
const __class_type_info*__dst,
const void*__obj,
510 __upcast_result& __restrict __result)
const;
514 class __vmi_class_type_info :
public __class_type_info
517 unsigned int __flags;
518 unsigned int __base_count;
523 __base_class_type_info __base_info[1];
526 __vmi_class_type_info(
const char* __n,
int ___flags)
527 : __class_type_info(__n), __flags(___flags), __base_count(0) { }
530 ~__vmi_class_type_info();
535 __non_diamond_repeat_mask = 0x1,
536 __diamond_shaped_mask = 0x2,
537 __flags_unknown_mask = 0x10
543 __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
544 const __class_type_info* __dst_type,
const void* __obj_ptr,
545 const __class_type_info* __src_type,
const void* __src_ptr,
546 __dyncast_result& __result)
const;
549 __do_find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
550 const __class_type_info* __src_type,
551 const void* __src_ptr)
const;
554 __do_upcast(
const __class_type_info* __dst,
const void* __obj,
555 __upcast_result& __restrict __result)
const;
559 struct __cxa_exception;
560 struct __cxa_refcounted_exception;
561 struct __cxa_dependent_exception;
562 struct __cxa_eh_globals;
575 __dynamic_cast(
const void* __src_ptr,
576 const __class_type_info* __src_type,
577 const __class_type_info* __dst_type,
578 ptrdiff_t __src2dst);
588 __cxa_get_globals() _GLIBCXX_NOTHROW __attribute__ ((__const__));
591 __cxa_get_globals_fast() _GLIBCXX_NOTHROW __attribute__ ((__const__));
595 __cxa_allocate_exception(
size_t) _GLIBCXX_NOTHROW;
599 __cxa_free_exception(
void*) _GLIBCXX_NOTHROW;
603 __cxa_throw(
void*, std::type_info*,
void (_GLIBCXX_CDTOR_CALLABI *) (
void *))
604 __attribute__((__noreturn__));
608 __cxa_get_exception_ptr(
void*) _GLIBCXX_NOTHROW __attribute__ ((__pure__));
611 __cxa_begin_catch(
void*) _GLIBCXX_NOTHROW;
617 __cxa_rethrow() __attribute__((__noreturn__));
622 __cxa_current_exception_type() _GLIBCXX_NOTHROW __attribute__ ((__pure__));
627 __cxa_dependent_exception*
628 __cxa_allocate_dependent_exception() _GLIBCXX_NOTHROW;
632 __cxa_free_dependent_exception(__cxa_dependent_exception*) _GLIBCXX_NOTHROW;
638 class __foreign_exception
640 virtual ~__foreign_exception() throw();
641 virtual
void __pure_dummy() = 0;
666 namespace abi = __cxxabiv1;
689 #endif // __cplusplus
691 #pragma GCC visibility pop
_Siter_base< _Iterator >::iterator_type __base(_Iterator __it)
Base class for all library exceptions.
Exception thrown by __cxa_guard_acquire.6.7[stmt.dcl]/4: If control re-enters the declaration (recurs...