9 #ifndef __PRIVATE_TYPEINFO_H_
10 #define __PRIVATE_TYPEINFO_H_
17 namespace __cxxabiv1 {
47 enum path_accessibility :
unsigned char {
53 enum tribool :
unsigned char {
66 const __class_type_info *dst_type;
67 const void *static_ptr;
68 const __class_type_info *static_type;
74 const void *dst_ptr_leading_to_static_ptr;
77 const void *dst_ptr_not_leading_to_static_ptr;
82 path_accessibility path_dst_ptr_to_static_ptr;
86 path_accessibility path_dynamic_ptr_to_static_ptr;
89 path_accessibility path_dynamic_ptr_to_dst_ptr;
92 unsigned char number_to_static_ptr;
94 unsigned char number_to_dst_ptr;
99 tribool is_dst_type_derived_from_static_type;
101 unsigned char number_of_dst_type;
104 bool found_our_static_ptr;
107 bool found_any_static_type;
118 process_static_type_above_dst(__dynamic_cast_info *,
const void *,
119 const void *, path_accessibility)
const;
121 process_static_type_below_dst(__dynamic_cast_info *,
const void *,
122 path_accessibility)
const;
124 path_accessibility)
const;
126 const void *,
const void *,
133 template <
class type_info_most_derived>
135 invoke_search_above_dst(
const __class_type_info *, __dynamic_cast_info *,
136 const void *,
const void *, path_accessibility,
bool);
137 template <
class type_info_most_derived>
139 invoke_search_below_dst(
const __class_type_info *, __dynamic_cast_info *,
140 const void *, path_accessibility,
bool);
144 void search_above_dst(__dynamic_cast_info *,
const void *,
const void *,
145 path_accessibility,
bool)
const;
148 path_accessibility,
bool)
const;
154 const __class_type_info *__base_type;
159 const void *, path_accessibility,
162 path_accessibility,
bool)
const;
167 const __class_type_info *__base_type;
170 enum __offset_flags_masks {
171 __virtual_mask = 0x1,
176 void search_above_dst(__dynamic_cast_info *,
const void *,
const void *,
177 path_accessibility,
bool)
const;
178 void search_below_dst(__dynamic_cast_info *,
const void *, path_accessibility,
185 unsigned int __flags;
186 unsigned int __base_count;
187 __base_class_type_info __base_info[1];
190 __non_diamond_repeat_mask = 0x1,
192 __diamond_shaped_mask = 0x2
199 const void *, path_accessibility,
202 path_accessibility,
bool)
const;
207 unsigned int __flags;
208 const __shim_type_info *__pointee;
212 __volatile_mask = 0x2,
213 __restrict_mask = 0x4,
214 __incomplete_mask = 0x8,
215 __incomplete_class_mask = 0x10,
216 __transaction_safe_mask = 0x20,
225 __noexcept_mask = 0x40,
228 __no_remove_flags_mask = __const_mask | __volatile_mask | __restrict_mask,
230 __no_add_flags_mask = __transaction_safe_mask | __noexcept_mask
242 :
public __pbase_type_info {
244 const __class_type_info *__context;
251 #endif // __PRIVATE_TYPEINFO_H_