45 #pragma GCC visibility push(default)
49 #include <cxxabi-forced.h>
52 #define _GLIBCXX_NOTHROW throw()
54 #define _GLIBCXX_NOTHROW __attribute__((nothrow))
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,
size_t element_count,
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,
103 size_t __element_size, __cxa_cdtor_type destructor);
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*);
127 __cxa_guard_abort(__guard*);
131 __cxa_pure_virtual(
void);
142 __cxa_atexit(
void (*)(
void*),
void*,
void*) _GLIBCXX_NOTHROW;
145 __cxa_finalize(
void*);
189 __cxa_demangle(const
char* __mangled_name,
char* __output_buffer,
190 size_t* __length,
int* __status);
207 __fundamental_type_info(
const char* __n) : std::type_info(__n) { }
210 ~__fundamental_type_info();
218 __array_type_info(
const char* __n) : std::type_info(__n) { }
221 ~__array_type_info();
229 __function_type_info(
const char* __n) : std::type_info(__n) { }
232 ~__function_type_info();
237 __is_function_p()
const;
245 __enum_type_info(
const char* __n) : std::type_info(__n) { }
255 unsigned int __flags;
259 __pbase_type_info(
const char* __n,
int __quals,
261 : std::type_info(__n), __flags(__quals), __pointee(__type)
265 ~__pbase_type_info();
271 __volatile_mask = 0x2,
272 __restrict_mask = 0x4,
273 __incomplete_mask = 0x8,
274 __incomplete_class_mask = 0x10
278 __pbase_type_info(
const __pbase_type_info&);
281 operator=(
const __pbase_type_info&);
286 unsigned int __outer)
const;
289 __pointer_catch(
const __pbase_type_info* __thr_type,
void** __thr_obj,
290 unsigned __outer)
const;
294 class __pointer_type_info :
public __pbase_type_info
298 __pointer_type_info(
const char* __n,
int __quals,
300 : __pbase_type_info (__n, __quals, __type) { }
304 ~__pointer_type_info();
309 __is_pointer_p()
const;
312 __pointer_catch(
const __pbase_type_info* __thr_type,
void** __thr_obj,
313 unsigned __outer)
const;
316 class __class_type_info;
319 class __pointer_to_member_type_info :
public __pbase_type_info
322 __class_type_info* __context;
325 __pointer_to_member_type_info(
const char* __n,
int __quals,
327 __class_type_info* __klass)
328 : __pbase_type_info(__n, __quals, __type), __context(__klass) { }
331 ~__pointer_to_member_type_info();
334 __pointer_to_member_type_info(
const __pointer_to_member_type_info&);
336 __pointer_to_member_type_info&
337 operator=(
const __pointer_to_member_type_info&);
341 __pointer_catch(
const __pbase_type_info* __thr_type,
void** __thr_obj,
342 unsigned __outer)
const;
346 class __base_class_type_info
349 const __class_type_info* __base_type;
352 enum __offset_flags_masks
354 __virtual_mask = 0x1,
362 __is_virtual_p()
const
363 {
return __offset_flags & __virtual_mask; }
366 __is_public_p()
const
367 {
return __offset_flags & __public_mask; }
375 return static_cast<ptrdiff_t
>(__offset_flags) >> __offset_shift;
384 __class_type_info (
const char *__n) : type_info(__n) { }
387 ~__class_type_info ();
407 __contained_virtual_mask = __base_class_type_info::__virtual_mask,
410 __contained_public_mask = __base_class_type_info::__public_mask,
413 __contained_mask = 1 << __base_class_type_info::__hwm_bit,
415 __contained_private = __contained_mask,
416 __contained_public = __contained_mask | __contained_public_mask
419 struct __upcast_result;
420 struct __dyncast_result;
425 __do_upcast(
const __class_type_info* __dst_type,
void**__obj_ptr)
const;
428 __do_catch(
const type_info* __thr_type,
void** __thr_obj,
429 unsigned __outer)
const;
435 __do_upcast(
const __class_type_info* __dst,
const void* __obj,
436 __upcast_result& __restrict __result)
const;
445 __find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
446 const __class_type_info* __src_type,
447 const void* __src_ptr)
const;
457 __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
458 const __class_type_info* __dst_type,
const void* __obj_ptr,
459 const __class_type_info* __src_type,
const void* __src_ptr,
460 __dyncast_result& __result)
const;
467 __do_find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
468 const __class_type_info* __src_type,
469 const void* __src_ptr)
const;
473 class __si_class_type_info :
public __class_type_info
476 const __class_type_info* __base_type;
479 __si_class_type_info(
const char *__n,
const __class_type_info *__base)
480 : __class_type_info(__n), __base_type(__base) { }
483 ~__si_class_type_info();
486 __si_class_type_info(
const __si_class_type_info&);
488 __si_class_type_info&
489 operator=(
const __si_class_type_info&);
493 __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
494 const __class_type_info* __dst_type,
const void* __obj_ptr,
495 const __class_type_info* __src_type,
const void* __src_ptr,
496 __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* __sub_ptr)
const;
504 __do_upcast(
const __class_type_info*__dst,
const void*__obj,
505 __upcast_result& __restrict __result)
const;
509 class __vmi_class_type_info :
public __class_type_info
512 unsigned int __flags;
513 unsigned int __base_count;
518 __base_class_type_info __base_info[1];
521 __vmi_class_type_info(
const char* __n,
int ___flags)
522 : __class_type_info(__n), __flags(___flags), __base_count(0) { }
525 ~__vmi_class_type_info();
530 __non_diamond_repeat_mask = 0x1,
531 __diamond_shaped_mask = 0x2,
532 __flags_unknown_mask = 0x10
538 __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
539 const __class_type_info* __dst_type,
const void* __obj_ptr,
540 const __class_type_info* __src_type,
const void* __src_ptr,
541 __dyncast_result& __result)
const;
544 __do_find_public_src(ptrdiff_t __src2dst,
const void* __obj_ptr,
545 const __class_type_info* __src_type,
546 const void* __src_ptr)
const;
549 __do_upcast(
const __class_type_info* __dst,
const void* __obj,
550 __upcast_result& __restrict __result)
const;
561 __dynamic_cast(
const void* __src_ptr,
562 const __class_type_info* __src_type,
563 const __class_type_info* __dst_type,
564 ptrdiff_t __src2dst);
570 __cxa_current_exception_type();
574 class __foreign_exception
576 virtual ~__foreign_exception() throw();
577 virtual
void __pure_dummy() = 0;
602 namespace abi = __cxxabiv1;
604 #endif // __cplusplus
606 #pragma GCC visibility pop