45 #pragma GCC system_header
47 #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 __cxa_pure_virtual(
void) __attribute__ ((__noreturn__));
139 __cxa_atexit(
void (*)(
void*),
void*,
void*) _GLIBCXX_NOTHROW;
142 __cxa_finalize(
void*);
186 __cxa_demangle(const
char* __mangled_name,
char* __output_buffer,
187 size_t* __length,
int* __status);
204 __fundamental_type_info(
const char* __n) : std::type_info(__n) { }
207 ~__fundamental_type_info();
215 __array_type_info(
const char* __n) : std::type_info(__n) { }
218 ~__array_type_info();
226 __function_type_info(
const char* __n) : std::type_info(__n) { }
229 ~__function_type_info();
234 __is_function_p()
const;
242 __enum_type_info(
const char* __n) : std::type_info(__n) { }
252 unsigned int __flags;
256 __pbase_type_info(
const char* __n,
int __quals,
258 : std::type_info(__n), __flags(__quals), __pointee(__type)
262 ~__pbase_type_info();
268 __volatile_mask = 0x2,
269 __restrict_mask = 0x4,
270 __incomplete_mask = 0x8,
271 __incomplete_class_mask = 0x10
275 __pbase_type_info(
const __pbase_type_info&);
278 operator=(
const __pbase_type_info&);
283 unsigned int __outer)
const;
286 __pointer_catch(
const __pbase_type_info* __thr_type,
void** __thr_obj,
287 unsigned __outer)
const;
291 class __pointer_type_info :
public __pbase_type_info
295 __pointer_type_info(
const char* __n,
int __quals,
297 : __pbase_type_info (__n, __quals, __type) { }
301 ~__pointer_type_info();
306 __is_pointer_p()
const;
309 __pointer_catch(
const __pbase_type_info* __thr_type,
void** __thr_obj,
310 unsigned __outer)
const;
313 class __class_type_info;
316 class __pointer_to_member_type_info :
public __pbase_type_info
319 __class_type_info* __context;
322 __pointer_to_member_type_info(
const char* __n,
int __quals,
324 __class_type_info* __klass)
325 : __pbase_type_info(__n, __quals, __type), __context(__klass) { }
328 ~__pointer_to_member_type_info();
331 __pointer_to_member_type_info(
const __pointer_to_member_type_info&);
333 __pointer_to_member_type_info&
334 operator=(
const __pointer_to_member_type_info&);
338 __pointer_catch(
const __pbase_type_info* __thr_type,
void** __thr_obj,
339 unsigned __outer)
const;
343 class __base_class_type_info
346 const __class_type_info* __base_type;
349 enum __offset_flags_masks
351 __virtual_mask = 0x1,
359 __is_virtual_p()
const
360 {
return __offset_flags & __virtual_mask; }
363 __is_public_p()
const
364 {
return __offset_flags & __public_mask; }
372 return static_cast<ptrdiff_t
>(__offset_flags) >> __offset_shift;
381 __class_type_info (
const char *__n) : type_info(__n) { }
384 ~__class_type_info ();
404 __contained_virtual_mask = __base_class_type_info::__virtual_mask,
407 __contained_public_mask = __base_class_type_info::__public_mask,
410 __contained_mask = 1 << __base_class_type_info::__hwm_bit,
412 __contained_private = __contained_mask,
413 __contained_public = __contained_mask | __contained_public_mask
416 struct __upcast_result;
417 struct __dyncast_result;
422 __do_upcast(
const __class_type_info* __dst_type,
void**__obj_ptr)
const;
425 __do_catch(
const type_info* __thr_type,
void** __thr_obj,
426 unsigned __outer)
const;
432 __do_upcast(
const __class_type_info* __dst,
const void* __obj,
433 __upcast_result& __restrict __result)
const;
442 __find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
443 const __class_type_info* __src_type,
444 const void* __src_ptr)
const;
454 __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
455 const __class_type_info* __dst_type,
const void* __obj_ptr,
456 const __class_type_info* __src_type,
const void* __src_ptr,
457 __dyncast_result& __result)
const;
464 __do_find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
465 const __class_type_info* __src_type,
466 const void* __src_ptr)
const;
470 class __si_class_type_info :
public __class_type_info
473 const __class_type_info* __base_type;
476 __si_class_type_info(
const char *__n,
const __class_type_info *
__base)
477 : __class_type_info(__n), __base_type(__base) { }
480 ~__si_class_type_info();
483 __si_class_type_info(
const __si_class_type_info&);
485 __si_class_type_info&
486 operator=(
const __si_class_type_info&);
490 __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
491 const __class_type_info* __dst_type,
const void* __obj_ptr,
492 const __class_type_info* __src_type,
const void* __src_ptr,
493 __dyncast_result& __result)
const;
496 __do_find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
497 const __class_type_info* __src_type,
498 const void* __sub_ptr)
const;
501 __do_upcast(
const __class_type_info*__dst,
const void*__obj,
502 __upcast_result& __restrict __result)
const;
506 class __vmi_class_type_info :
public __class_type_info
509 unsigned int __flags;
510 unsigned int __base_count;
515 __base_class_type_info __base_info[1];
518 __vmi_class_type_info(
const char* __n,
int ___flags)
519 : __class_type_info(__n), __flags(___flags), __base_count(0) { }
522 ~__vmi_class_type_info();
527 __non_diamond_repeat_mask = 0x1,
528 __diamond_shaped_mask = 0x2,
529 __flags_unknown_mask = 0x10
535 __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
536 const __class_type_info* __dst_type,
const void* __obj_ptr,
537 const __class_type_info* __src_type,
const void* __src_ptr,
538 __dyncast_result& __result)
const;
541 __do_find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
542 const __class_type_info* __src_type,
543 const void* __src_ptr)
const;
546 __do_upcast(
const __class_type_info* __dst,
const void* __obj,
547 __upcast_result& __restrict __result)
const;
558 __dynamic_cast(
const void* __src_ptr,
559 const __class_type_info* __src_type,
560 const __class_type_info* __dst_type,
561 ptrdiff_t __src2dst);
567 __cxa_current_exception_type() _GLIBCXX_NOTHROW __attribute__ ((__pure__));
571 class __foreign_exception
573 virtual ~__foreign_exception() _GLIBCXX_NOTHROW;
574 virtual
void __pure_dummy() = 0;
599 namespace abi = __cxxabiv1;
622 #endif // __cplusplus
624 #pragma GCC visibility pop