44 #pragma GCC system_header 46 #pragma GCC visibility push(default) 53 #ifndef _GLIBCXX_CDTOR_CALLABI 54 #define _GLIBCXX_CDTOR_CALLABI 64 typedef __cxa_cdtor_return_type (*__cxa_cdtor_type)(
void *);
68 __cxa_vec_new(
size_t __element_count,
size_t __element_size,
69 size_t __padding_size, __cxa_cdtor_type __constructor,
70 __cxa_cdtor_type __destructor);
73 __cxa_vec_new2(
size_t __element_count,
size_t __element_size,
74 size_t __padding_size, __cxa_cdtor_type __constructor,
75 __cxa_cdtor_type __destructor,
void *(*__alloc) (
size_t),
76 void (*__dealloc) (
void*));
79 __cxa_vec_new3(
size_t __element_count,
size_t __element_size,
80 size_t __padding_size, __cxa_cdtor_type __constructor,
81 __cxa_cdtor_type __destructor,
void *(*__alloc) (
size_t),
82 void (*__dealloc) (
void*,
size_t));
85 __cxa_vec_ctor_return_type
86 __cxa_vec_ctor(
void* __array_address,
size_t __element_count,
87 size_t __element_size, __cxa_cdtor_type __constructor,
88 __cxa_cdtor_type __destructor);
90 __cxa_vec_ctor_return_type
91 __cxa_vec_cctor(
void* __dest_array,
void* __src_array,
92 size_t __element_count,
size_t __element_size,
93 __cxa_cdtor_return_type (*__constructor) (
void*,
void*),
94 __cxa_cdtor_type __destructor);
98 __cxa_vec_dtor(
void* __array_address,
size_t __element_count,
99 size_t __element_size, __cxa_cdtor_type __destructor);
102 __cxa_vec_cleanup(
void* __array_address,
size_t __element_count,
size_t __s,
103 __cxa_cdtor_type __destructor) _GLIBCXX_NOTHROW;
107 __cxa_vec_delete(
void* __array_address,
size_t __element_size,
108 size_t __padding_size, __cxa_cdtor_type __destructor);
111 __cxa_vec_delete2(
void* __array_address,
size_t __element_size,
112 size_t __padding_size, __cxa_cdtor_type __destructor,
113 void (*__dealloc) (
void*));
116 __cxa_vec_delete3(
void* __array_address,
size_t __element_size,
117 size_t __padding_size, __cxa_cdtor_type __destructor,
118 void (*__dealloc) (
void*,
size_t));
121 __cxa_guard_acquire(__guard*);
124 __cxa_guard_release(__guard*) _GLIBCXX_NOTHROW;
127 __cxa_guard_abort(__guard*) _GLIBCXX_NOTHROW;
131 __cxa_atexit(
void (*)(
void*),
void*,
void*) _GLIBCXX_NOTHROW;
134 __cxa_finalize(
void*);
138 __cxa_thread_atexit(
void (*)(
void*),
void*,
void *) _GLIBCXX_NOTHROW;
142 __cxa_pure_virtual(
void) __attribute__ ((__noreturn__));
145 __cxa_deleted_virtual(
void) __attribute__ ((__noreturn__));
149 __cxa_bad_cast() __attribute__((__noreturn__));
152 __cxa_bad_typeid() __attribute__((__noreturn__));
155 __cxa_throw_bad_array_new_length() __attribute__((__noreturn__));
198 __cxa_demangle(const
char* __mangled_name,
char* __output_buffer,
199 size_t* __length,
int* __status);
217 __fundamental_type_info(
const char* __n) :
std::type_info(__n) { }
220 ~__fundamental_type_info();
228 __array_type_info(
const char* __n) :
std::type_info(__n) { }
231 ~__array_type_info();
239 __function_type_info(
const char* __n) :
std::type_info(__n) { }
242 ~__function_type_info();
247 __is_function_p()
const;
255 __enum_type_info(
const char* __n) :
std::type_info(__n) { }
265 unsigned int __flags;
269 __pbase_type_info(
const char* __n,
int __quals,
271 :
std::type_info(__n), __flags(__quals), __pointee(__type)
275 ~__pbase_type_info();
281 __volatile_mask = 0x2,
282 __restrict_mask = 0x4,
283 __incomplete_mask = 0x8,
284 __incomplete_class_mask = 0x10,
285 __transaction_safe_mask = 0x20
289 __pbase_type_info(
const __pbase_type_info&);
292 operator=(
const __pbase_type_info&);
297 unsigned int __outer)
const;
300 __pointer_catch(
const __pbase_type_info* __thr_type,
void** __thr_obj,
301 unsigned __outer)
const;
304 inline bool __pbase_type_info::
305 __pointer_catch (
const __pbase_type_info *thrown_type,
307 unsigned outer)
const 309 return __pointee->__do_catch (thrown_type->__pointee, thr_obj, outer + 2);
313 class __pointer_type_info :
public __pbase_type_info
317 __pointer_type_info(
const char* __n,
int __quals,
319 : __pbase_type_info (__n, __quals, __type) { }
323 ~__pointer_type_info();
328 __is_pointer_p()
const;
331 __pointer_catch(
const __pbase_type_info* __thr_type,
void** __thr_obj,
332 unsigned __outer)
const;
335 class __class_type_info;
338 class __pointer_to_member_type_info :
public __pbase_type_info
341 __class_type_info* __context;
344 __pointer_to_member_type_info(
const char* __n,
int __quals,
346 __class_type_info* __klass)
347 : __pbase_type_info(__n, __quals, __type), __context(__klass) { }
350 ~__pointer_to_member_type_info();
353 __pointer_to_member_type_info(
const __pointer_to_member_type_info&);
355 __pointer_to_member_type_info&
356 operator=(
const __pointer_to_member_type_info&);
360 __pointer_catch(
const __pbase_type_info* __thr_type,
void** __thr_obj,
361 unsigned __outer)
const;
365 class __base_class_type_info
368 const __class_type_info* __base_type;
369 #ifdef _GLIBCXX_LLP64 370 long long __offset_flags;
375 enum __offset_flags_masks
377 __virtual_mask = 0x1,
385 __is_virtual_p()
const 386 {
return __offset_flags & __virtual_mask; }
389 __is_public_p()
const 390 {
return __offset_flags & __public_mask; }
398 return static_cast<ptrdiff_t
>(__offset_flags) >> __offset_shift;
407 __class_type_info (
const char *__n) : type_info(__n) { }
410 ~__class_type_info ();
430 __contained_virtual_mask = __base_class_type_info::__virtual_mask,
433 __contained_public_mask = __base_class_type_info::__public_mask,
436 __contained_mask = 1 << __base_class_type_info::__hwm_bit,
438 __contained_private = __contained_mask,
439 __contained_public = __contained_mask | __contained_public_mask
442 struct __upcast_result;
443 struct __dyncast_result;
448 __do_upcast(
const __class_type_info* __dst_type,
void**__obj_ptr)
const;
451 __do_catch(
const type_info* __thr_type,
void** __thr_obj,
452 unsigned __outer)
const;
458 __do_upcast(
const __class_type_info* __dst,
const void* __obj,
459 __upcast_result& __restrict __result)
const;
468 __find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
469 const __class_type_info* __src_type,
470 const void* __src_ptr)
const;
480 __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
481 const __class_type_info* __dst_type,
const void* __obj_ptr,
482 const __class_type_info* __src_type,
const void* __src_ptr,
483 __dyncast_result& __result)
const;
490 __do_find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
491 const __class_type_info* __src_type,
492 const void* __src_ptr)
const;
496 class __si_class_type_info :
public __class_type_info
499 const __class_type_info* __base_type;
502 __si_class_type_info(
const char *__n,
const __class_type_info *__base)
503 : __class_type_info(__n), __base_type(__base) { }
506 ~__si_class_type_info();
509 __si_class_type_info(
const __si_class_type_info&);
511 __si_class_type_info&
512 operator=(
const __si_class_type_info&);
516 __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
517 const __class_type_info* __dst_type,
const void* __obj_ptr,
518 const __class_type_info* __src_type,
const void* __src_ptr,
519 __dyncast_result& __result)
const;
522 __do_find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
523 const __class_type_info* __src_type,
524 const void* __sub_ptr)
const;
527 __do_upcast(
const __class_type_info*__dst,
const void*__obj,
528 __upcast_result& __restrict __result)
const;
532 class __vmi_class_type_info :
public __class_type_info
535 unsigned int __flags;
536 unsigned int __base_count;
541 __base_class_type_info __base_info[1];
544 __vmi_class_type_info(
const char* __n,
int ___flags)
545 : __class_type_info(__n), __flags(___flags), __base_count(0) { }
548 ~__vmi_class_type_info();
553 __non_diamond_repeat_mask = 0x1,
554 __diamond_shaped_mask = 0x2,
555 __flags_unknown_mask = 0x10
561 __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
562 const __class_type_info* __dst_type,
const void* __obj_ptr,
563 const __class_type_info* __src_type,
const void* __src_ptr,
564 __dyncast_result& __result)
const;
567 __do_find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
568 const __class_type_info* __src_type,
569 const void* __src_ptr)
const;
572 __do_upcast(
const __class_type_info* __dst,
const void* __obj,
573 __upcast_result& __restrict __result)
const;
577 struct __cxa_exception;
578 struct __cxa_refcounted_exception;
579 struct __cxa_dependent_exception;
580 struct __cxa_eh_globals;
593 __dynamic_cast(
const void* __src_ptr,
594 const __class_type_info* __src_type,
595 const __class_type_info* __dst_type,
596 ptrdiff_t __src2dst);
606 __cxa_get_globals() _GLIBCXX_NOTHROW __attribute__ ((__const__));
609 __cxa_get_globals_fast() _GLIBCXX_NOTHROW __attribute__ ((__const__));
613 __cxa_allocate_exception(
size_t) _GLIBCXX_NOTHROW;
617 __cxa_free_exception(
void*) _GLIBCXX_NOTHROW;
621 __cxa_throw(
void*,
std::type_info*,
void (_GLIBCXX_CDTOR_CALLABI *) (
void *))
622 __attribute__((__noreturn__));
626 __cxa_get_exception_ptr(
void*) _GLIBCXX_NOTHROW __attribute__ ((__pure__));
629 __cxa_begin_catch(
void*) _GLIBCXX_NOTHROW;
635 __cxa_rethrow() __attribute__((__noreturn__));
640 __cxa_current_exception_type() _GLIBCXX_NOTHROW __attribute__ ((__pure__));
645 __cxa_dependent_exception*
646 __cxa_allocate_dependent_exception() _GLIBCXX_NOTHROW;
650 __cxa_free_dependent_exception(__cxa_dependent_exception*) _GLIBCXX_NOTHROW;
656 class __foreign_exception
658 virtual ~__foreign_exception() throw();
659 virtual
void __pure_dummy() = 0;
707 #endif // __cplusplus 709 #pragma GCC visibility pop
Exception thrown by __cxa_guard_acquire.6.7[stmt.dcl]/4: If control re-enters the declaration (recurs...
Base class for all library exceptions.
GNU extensions for public use.
ISO C++ entities toplevel namespace is std.