41#define __thiscall __stdcall
43#define __thiscall __cdecl
132static void * (
WINAPI *call_thiscall_func1)(
void *
func,
void *
this );
133static void * (
WINAPI *call_thiscall_func2)(
void *
func,
void *
this,
const void *
a );
139 thunk->pop_eax = 0x58;
140 thunk->pop_edx = 0x5a;
141 thunk->pop_ecx = 0x59;
142 thunk->push_eax = 0x50;
143 thunk->jmp_edx = 0xe2ff;
144 call_thiscall_func1 = (
void *)
thunk;
145 call_thiscall_func2 = (
void *)
thunk;
148#define call_func1(func,_this) call_thiscall_func1(func,_this)
149#define call_func2(func,_this,a) call_thiscall_func2(func,_this,(const void*)(a))
153#define init_thiscall_thunk() do { } while(0)
154#define call_func1(func,_this) func(_this)
155#define call_func2(func,_this,a) func(_this,a)
160#define SETNOFAIL(x,y) x = (void*)GetProcAddress(hMsvcrt,y)
161#define SET(x,y) do { SETNOFAIL(x,y); ok(x != NULL, "Export '%s' not found\n", y); } while(0)
168 ok(
hMsvcrt != 0,
"GetModuleHandleA failed\n");
171 win_skip(
"Could not load msvcrt.dll\n");
191 if (
sizeof(
void *) >
sizeof(
int))
194 SETNOFAIL(poperator_delete,
"??_V@YAXPEAX@Z");
196 SET(pexception_ctor,
"??0exception@@QEAA@AEBQEBD@Z");
197 SET(pexception_copy_ctor,
"??0exception@@QEAA@AEBV0@@Z");
198 SET(pexception_default_ctor,
"??0exception@@QEAA@XZ");
199 SET(pexception_dtor,
"??1exception@@UEAA@XZ");
205 SET(pbad_typeid_ctor,
"??0bad_typeid@@QEAA@PEBD@Z");
206 SETNOFAIL(pbad_typeid_ctor_closure,
"??_Fbad_typeid@@QEAAXXZ");
207 SET(pbad_typeid_copy_ctor,
"??0bad_typeid@@QEAA@AEBV0@@Z");
208 SET(pbad_typeid_dtor,
"??1bad_typeid@@UEAA@XZ");
214 SET(pbad_cast_ctor,
"??0bad_cast@@QEAA@AEBQEBD@Z");
215 SET(pbad_cast_ctor2,
"??0bad_cast@@QEAA@PEBD@Z");
216 SET(pbad_cast_ctor_closure,
"??_Fbad_cast@@QEAAXXZ");
217 SET(pbad_cast_copy_ctor,
"??0bad_cast@@QEAA@AEBV0@@Z");
218 SET(pbad_cast_dtor,
"??1bad_cast@@UEAA@XZ");
224 SET(p__non_rtti_object_ctor,
"??0__non_rtti_object@@QEAA@PEBD@Z");
225 SET(p__non_rtti_object_copy_ctor,
"??0__non_rtti_object@@QEAA@AEBV0@@Z");
226 SET(p__non_rtti_object_dtor,
"??1__non_rtti_object@@UEAA@XZ");
232 SET(ptype_info_dtor,
"??1type_info@@UEAA@XZ");
235 SET(ptype_info_before,
"?before@type_info@@QEBAHAEBV1@@Z");
236 SET(ptype_info_opequals_equals,
"??8type_info@@QEBAHAEBV0@@Z");
237 SET(ptype_info_opnot_equals,
"??9type_info@@QEBAHAEBV0@@Z");
243 SETNOFAIL(poperator_delete,
"??_V@YAXPAX@Z");
245 SET(pexception_ctor,
"??0exception@std@@QAA@ABQBD@Z");
246 SET(pexception_copy_ctor,
"??0exception@std@@QAA@ABV01@@Z");
247 SET(pexception_default_ctor,
"??0exception@std@@QAA@XZ");
248 SET(pexception_dtor,
"??1exception@std@@UAA@XZ");
251 SET(pexception_vector_dtor,
"??_Eexception@@UAEPAXI@Z");
252 SET(pexception_scalar_dtor,
"??_Gexception@@UAEPAXI@Z");
254 SET(pbad_typeid_ctor,
"??0bad_typeid@std@@QAA@PBD@Z");
255 SETNOFAIL(pbad_typeid_ctor_closure,
"??_Fbad_typeid@std@@QAAXXZ");
256 SET(pbad_typeid_copy_ctor,
"??0bad_typeid@std@@QAA@ABV01@@Z");
257 SET(pbad_typeid_dtor,
"??1bad_typeid@std@@UAA@XZ");
260 SET(pbad_typeid_vector_dtor,
"??_Ebad_cast@@UAEPAXI@Z");
261 SET(pbad_typeid_scalar_dtor,
"??_Gbad_cast@@UAEPAXI@Z");
263 SETNOFAIL(pbad_cast_ctor,
"??0bad_cast@@QAE@ABQBD@Z");
265 SET(pbad_cast_ctor,
"??0bad_cast@std@@AAA@PBQBD@Z");
266 SETNOFAIL(pbad_cast_ctor2,
"??0bad_cast@std@@QAA@PBD@Z");
267 SETNOFAIL(pbad_cast_ctor_closure,
"??_Fbad_cast@std@@QAAXXZ");
269 SET(pbad_cast_dtor,
"??1bad_cast@std@@UAA@XZ");
272 SET(pbad_cast_vector_dtor,
"??_Ebad_cast@@UAEPAXI@Z");
273 SET(pbad_cast_scalar_dtor,
"??_Gbad_cast@@UAEPAXI@Z");
275 SET(p__non_rtti_object_ctor,
"??0__non_rtti_object@std@@QAA@PBD@Z");
276 SET(p__non_rtti_object_copy_ctor,
"??0__non_rtti_object@std@@QAA@ABV01@@Z");
277 SET(p__non_rtti_object_dtor,
"??1__non_rtti_object@std@@UAA@XZ");
280 SET(p__non_rtti_object_vector_dtor,
"??_E__non_rtti_object@@UAEPAXI@Z");
281 SET(p__non_rtti_object_scalar_dtor,
"??_G__non_rtti_object@@UAEPAXI@Z");
283 SET(ptype_info_dtor,
"??1type_info@@UAA@XZ");
286 SET(ptype_info_before,
"?before@type_info@@QBA_NABV1@@Z");
287 SET(ptype_info_opequals_equals,
"??8type_info@@QBA_NABV0@@Z");
288 SET(ptype_info_opnot_equals,
"??9type_info@@QBA_NABV0@@Z");
291 SETNOFAIL(poperator_delete,
"??_V@YAXPAX@Z");
293 SET(pexception_ctor,
"??0exception@@QAE@ABQBD@Z");
294 SET(pexception_copy_ctor,
"??0exception@@QAE@ABV0@@Z");
295 SET(pexception_default_ctor,
"??0exception@@QAE@XZ");
296 SET(pexception_dtor,
"??1exception@@UAE@XZ");
299 SET(pexception_vector_dtor,
"??_Eexception@@UAEPAXI@Z");
300 SET(pexception_scalar_dtor,
"??_Gexception@@UAEPAXI@Z");
302 SET(pbad_typeid_ctor,
"??0bad_typeid@@QAE@PBD@Z");
303 SETNOFAIL(pbad_typeid_ctor_closure,
"??_Fbad_typeid@@QAEXXZ");
304 SET(pbad_typeid_copy_ctor,
"??0bad_typeid@@QAE@ABV0@@Z");
305 SET(pbad_typeid_dtor,
"??1bad_typeid@@UAE@XZ");
308 SET(pbad_typeid_vector_dtor,
"??_Ebad_typeid@@UAEPAXI@Z");
309 SET(pbad_typeid_scalar_dtor,
"??_Gbad_typeid@@UAEPAXI@Z");
311 SETNOFAIL(pbad_cast_ctor,
"??0bad_cast@@QAE@ABQBD@Z");
313 SET(pbad_cast_ctor,
"??0bad_cast@@AAE@PBQBD@Z");
314 SETNOFAIL(pbad_cast_ctor2,
"??0bad_cast@@QAE@PBD@Z");
315 SETNOFAIL(pbad_cast_ctor_closure,
"??_Fbad_cast@@QAEXXZ");
316 SET(pbad_cast_copy_ctor,
"??0bad_cast@@QAE@ABV0@@Z");
317 SET(pbad_cast_dtor,
"??1bad_cast@@UAE@XZ");
320 SET(pbad_cast_vector_dtor,
"??_Ebad_cast@@UAEPAXI@Z");
321 SET(pbad_cast_scalar_dtor,
"??_Gbad_cast@@UAEPAXI@Z");
323 SET(p__non_rtti_object_ctor,
"??0__non_rtti_object@@QAE@PBD@Z");
324 SET(p__non_rtti_object_copy_ctor,
"??0__non_rtti_object@@QAE@ABV0@@Z");
325 SET(p__non_rtti_object_dtor,
"??1__non_rtti_object@@UAE@XZ");
328 SET(p__non_rtti_object_vector_dtor,
"??_E__non_rtti_object@@UAEPAXI@Z");
329 SET(p__non_rtti_object_scalar_dtor,
"??_G__non_rtti_object@@UAEPAXI@Z");
331 SET(ptype_info_dtor,
"??1type_info@@UAE@XZ");
334 SET(ptype_info_before,
"?before@type_info@@QBEHABV1@@Z");
335 SET(ptype_info_opequals_equals,
"??8type_info@@QBEHABV0@@Z");
336 SET(ptype_info_opnot_equals,
"??9type_info@@QBEHABV0@@Z");
342 if (!poperator_delete)
343 poperator_delete = pfree;
351 static const char* e_name =
"An exception name";
356 !pexception_ctor || !pexception_copy_ctor || !pexception_default_ctor ||
364 ok(
e.vtable !=
NULL,
"Null exception vtable for e\n");
366 ok(
e.do_free == 1,
"do_free set to %d for e\n",
e.do_free);
369 memset(&e2, 0,
sizeof(e2));
371 ok(e2.
vtable !=
NULL,
"Null exception vtable for e2\n");
376 memset(&e3, 1,
sizeof(e3));
378 ok(e3.
vtable !=
NULL,
"Null exception vtable for e3\n");
379 ok(e3.
name ==
NULL,
"Bad exception name for e3\n");
382 ok(
e.vtable == e2.
vtable &&
e.vtable == e3.
vtable,
"exception vtables differ!\n");
389 memset(&e2, 0,
sizeof(e2));
392 ok(e2.
vtable !=
NULL,
"Null exception vtable for e2\n");
395 ok(pe == &e2,
"opequals didn't return e2\n");
399 ok(e2.
name ==
name,
"Bad exception name from e2::what()\n");
407 ok(pe !=
NULL,
"new() failed\n");
419 ok(pe !=
NULL,
"new() failed\n");
428 ok(pe !=
NULL,
"new() failed\n");
432 char name[] =
"a constant";
445 pexception_vector_dtor = (
void*)pe->
vtable;
449 ok(
e.
name ==
name,
"Bad exception name from vtable e::what()\n");
455 ok (ti && !
strcmp(ti->
mangled,
".?AVexception@@"),
"bad rtti for e\n");
461 ok (ti2 !=
NULL && !
strcmp(ti2->
mangled,
".?AVtype_info@@"),
"bad rtti for e's type_info\n");
472 static const char* e_name =
"A bad_typeid name";
477 !pbad_typeid_ctor || !pbad_typeid_copy_ctor ||
485 ok(
e.vtable !=
NULL,
"Null bad_typeid vtable for e\n");
487 ok(
e.do_free == 1,
"do_free set to %d for e\n",
e.do_free);
490 memset(&e2, 0,
sizeof(e2));
492 ok(e2.
vtable !=
NULL,
"Null bad_typeid vtable for e2\n");
497 if (pbad_typeid_ctor_closure)
499 memset(&e3, 1,
sizeof(e3));
501 ok(e3.
vtable !=
NULL,
"Null bad_typeid vtable for e3\n");
502 ok(e3.
name && !
strcmp(e3.
name,
"bad typeid"),
"Bad bad_typeid name for e3\n");
504 ok(
e.vtable == e3.
vtable,
"bad_typeid closure vtables differ!\n");
507 ok(
e.vtable == e2.
vtable,
"bad_typeid vtables differ!\n");
513 memset(&e2, 1,
sizeof(e2));
516 ok(e2.
vtable !=
NULL,
"Null bad_typeid vtable for e2\n");
519 ok(pe == &e2,
"opequals didn't return e2\n");
523 ok(e2.
name ==
name,
"Bad bad_typeid name from e2::what()\n");
531 ok(pe !=
NULL,
"new() failed\n");
543 ok(pe !=
NULL,
"new() failed\n");
552 ok(pe !=
NULL,
"new() failed\n");
568 pbad_typeid_vector_dtor = (
void*)pe->
vtable;
572 ok(
e.
name ==
name,
"Bad bad_typeid name from vtable e::what()\n");
589 static const char* e_name =
"A bad_cast name";
594 !pbad_cast_ctor || !pbad_cast_copy_ctor ||
604 ok(
e.vtable !=
NULL,
"Null bad_cast vtable for e\n");
606 ok(
e.do_free == 1,
"do_free set to %d for e\n",
e.do_free);
613 ok(
e.vtable !=
NULL,
"Null bad_cast vtable for e\n");
615 ok(
e.do_free == 1,
"do_free set to %d for e\n",
e.do_free);
618 memset(&e2, 0,
sizeof(e2));
625 if (pbad_cast_ctor_closure)
627 memset(&e3, 1,
sizeof(e3));
632 ok(
e.vtable == e3.
vtable,
"bad_cast closure vtables differ!\n");
635 ok(
e.vtable == e2.
vtable,
"bad_cast vtables differ!\n");
641 memset(&e2, 1,
sizeof(e2));
647 ok(pe == &e2,
"opequals didn't return e2\n");
651 ok(e2.
name ==
name,
"Bad bad_cast name from e2::what()\n");
659 ok(pe !=
NULL,
"new() failed\n");
671 ok(pe !=
NULL,
"new() failed\n");
680 ok(pe !=
NULL,
"new() failed\n");
696 pbad_cast_vector_dtor = (
void*)pe->
vtable;
700 ok(
e.
name ==
name,
"Bad bad_cast name from vtable e::what()\n");
714 static const char* e_name =
"A __non_rtti_object name";
719 !p__non_rtti_object_ctor || !p__non_rtti_object_copy_ctor ||
727 ok(
e.vtable !=
NULL,
"Null __non_rtti_object vtable for e\n");
729 ok(
e.do_free == 1,
"do_free set to %d for e\n",
e.do_free);
732 memset(&e2, 0,
sizeof(e2));
734 ok(e2.
vtable !=
NULL,
"Null __non_rtti_object vtable for e2\n");
737 ok(
e.vtable == e2.
vtable,
"__non_rtti_object vtables differ!\n");
743 memset(&e2, 1,
sizeof(e2));
746 ok(e2.
vtable !=
NULL,
"Null __non_rtti_object vtable for e2\n");
749 ok(pe == &e2,
"opequals didn't return e2\n");
753 ok(e2.
name ==
name,
"Bad __non_rtti_object name from e2::what()\n");
761 ok(pe !=
NULL,
"new() failed\n");
764 call_func2(p__non_rtti_object_ctor, pe, e_name);
766 call_func2(p__non_rtti_object_scalar_dtor, pe, 0);
769 call_func2(p__non_rtti_object_scalar_dtor, pe, 1);
773 ok(pe !=
NULL,
"new() failed\n");
777 call_func2(p__non_rtti_object_ctor, pe, e_name);
778 call_func2(p__non_rtti_object_vector_dtor, pe, 1);
782 ok(pe !=
NULL,
"new() failed\n");
788 call_func2(p__non_rtti_object_ctor, &pe[0], e_name);
789 call_func2(p__non_rtti_object_ctor, &pe[1], e_name);
790 call_func2(p__non_rtti_object_ctor, &pe[2], e_name);
793 call_func2(p__non_rtti_object_vector_dtor, pe, 3);
798 p__non_rtti_object_vector_dtor = (
void*)pe->
vtable;
802 ok(
e.
name ==
name,
"Bad __non_rtti_object name from vtable e::what()\n");
815 static type_info t1 = {
NULL,
NULL,{
'.',
'?',
'A',
'V',
't',
'e',
's',
't',
'1',
'@',
'@',0,0,0,0,0 } };
816 static type_info t1_1 = {
NULL,
NULL,{
'?',
'?',
'A',
'V',
't',
'e',
's',
't',
'1',
'@',
'@',0,0,0,0,0 } };
817 static type_info t2 = {
NULL,
NULL, {
'.',
'?',
'A',
'V',
't',
'e',
's',
't',
'2',
'@',
'@',0,0,0,0,0 } };
823 !ptype_info_opequals_equals || !ptype_info_opnot_equals)
839 ok(t1.
name ==
NULL,
"raw_name() set name for t1\n");
852 ok(
res == 0,
"expected 0, got %d\n",
res);
854 ok(
res == 0,
"expected 0, got %d\n",
res);
856 ok(
res == 1,
"expected 1, got %d\n",
res);
859 ok(
res == 0,
"expected 0, got %d\n",
res);
864 ok(
res == 1,
"expected 1, got %d\n",
res);
866 ok(
res == 0,
"expected 0, got %d\n",
res);
868 ok(
res == 0,
"expected 0, got %d\n",
res);
873 ok(
res == 0,
"expected 0, got %d\n",
res);
875 ok(
res == 1,
"expected 1, got %d\n",
res);
877 ok(
res == 1,
"expected 1, got %d\n",
res);
888 return (
void *)
vtable[-1];
892#define DEFINE_RTTI_REF(type, name) type *name
893#define RTTI_REF(instance, name) &instance.name
894#define RTTI_REF_SIG0(instance, name, base) RTTI_REF(instance, name)
896#define DEFINE_RTTI_REF(type, name) unsigned name
897#define RTTI_REF(instance, name) FIELD_OFFSET(struct rtti_data, name)
898#define RTTI_REF_SIG0(instance, name, base) ((char*)&instance.name-base)
903 struct _object_locator
905 unsigned int signature;
906 int base_class_offset;
920 int num_base_classes;
926 unsigned int attributes;
927 } base_descriptor[4];
934 unsigned int signature;
935 unsigned int attributes;
940 struct _object_locator object_locator;
941 } simple_class_rtti = {
944 { {
RTTI_REF(simple_class_rtti, base_descriptor[0])} },
945 {0, 0, 1,
RTTI_REF(simple_class_rtti, base_array)},
947 }, child_class_rtti = {
949 { {
RTTI_REF(child_class_rtti,
type_info[1]), 0, {4, -1, 0}, 0}, {
RTTI_REF(child_class_rtti,
type_info[0]), 0, {8, -1, 0}, 0} },
950 { {
RTTI_REF(child_class_rtti, base_descriptor[0]),
RTTI_REF(child_class_rtti, base_descriptor[1])} },
951 {0, 0, 2,
RTTI_REF(child_class_rtti, base_array)},
953 }, virtual_base_class_rtti = {
955 { {
RTTI_REF(virtual_base_class_rtti,
type_info[1]), 0, {0x10,
sizeof(
void*),
sizeof(
int)}, 0}, {
RTTI_REF(virtual_base_class_rtti,
type_info[0]), 0, {8, -1, 0}, 0} },
956 { {
RTTI_REF(virtual_base_class_rtti, base_descriptor[0]),
RTTI_REF(virtual_base_class_rtti, base_descriptor[1])} },
957 {0, 0, 2,
RTTI_REF(virtual_base_class_rtti, base_array)},
958 {1, 0, 0,
RTTI_REF(virtual_base_class_rtti,
type_info[1]),
RTTI_REF(virtual_base_class_rtti, object_hierarchy),
RTTI_REF(virtual_base_class_rtti, object_locator)}
960 static struct rtti_data simple_class_sig0_rtti, child_class_sig0_rtti;
962 void *simple_class_vtbl[2] = {&simple_class_rtti.object_locator};
963 void *simple_class = &simple_class_vtbl[1];
964 void *child_class_vtbl[2] = {&child_class_rtti.object_locator};
965 void *child_class = &child_class_vtbl[1];
966 void *simple_class_sig0_vtbl[2] = {&simple_class_sig0_rtti.object_locator};
967 void *simple_class_sig0 = &simple_class_sig0_vtbl[1];
968 void *child_class_sig0_vtbl[2] = {&child_class_sig0_rtti.object_locator};
969 void *child_class_sig0 = &child_class_sig0_vtbl[1];
970 void *virtual_base_class_vtbl[2] = {&virtual_base_class_rtti.object_locator};
971 int virtual_base_class_vbtbl[2] = {0, 0x100};
973 void *virtual_base[2];
974 char data[0x110-
sizeof(
void*)];
976 } virtual_base_class = { {&virtual_base_class_vtbl[1], virtual_base_class_vbtbl} };
978 static const char* e_name =
"name";
996 if(obj_locator->signature!=1 &&
sizeof(
void*)>
sizeof(
int))
997 old_signature =
TRUE;
999 old_signature =
FALSE;
1003 ok (casted == (
void*)&
e,
"failed cast to void\n");
1013 ok (casted == (
void*)&
b,
"failed cast from bad_typeid to exception\n");
1018 ok (casted ==
NULL,
"Cast succeeded\n");
1023 simple_class_sig0_rtti = simple_class_rtti;
1024 simple_class_sig0_rtti.object_locator.signature = 0;
1026 simple_class_sig0_rtti.base_array.bases[0] =
RTTI_REF_SIG0(simple_class_sig0_rtti, base_descriptor[0],
base);
1027 simple_class_sig0_rtti.object_hierarchy.base_classes =
RTTI_REF_SIG0(simple_class_sig0_rtti, base_array,
base);
1029 simple_class_sig0_rtti.object_locator.type_hierarchy =
RTTI_REF_SIG0(simple_class_sig0_rtti, object_hierarchy,
base);
1031 child_class_sig0_rtti = child_class_rtti;
1032 child_class_sig0_rtti.object_locator.signature = 0;
1035 child_class_sig0_rtti.base_array.bases[0] =
RTTI_REF_SIG0(child_class_sig0_rtti, base_descriptor[0],
base);
1036 child_class_sig0_rtti.base_array.bases[1] =
RTTI_REF_SIG0(child_class_sig0_rtti, base_descriptor[1],
base);
1037 child_class_sig0_rtti.object_hierarchy.base_classes =
RTTI_REF_SIG0(child_class_sig0_rtti, base_array,
base);
1039 child_class_sig0_rtti.object_locator.type_hierarchy =
RTTI_REF_SIG0(child_class_sig0_rtti, object_hierarchy,
base);
1042 ok (ti && !
strcmp(ti->
mangled,
"simple_class"),
"incorrect rtti data\n");
1045 ok (casted == (
void*)&simple_class_sig0,
"failed cast to void\n");
1048 ok (ti && !
strcmp(ti->
mangled,
"child_class"),
"incorrect rtti data\n");
1051 ok (casted == (
void*)&child_class_sig0,
"failed cast to void\n");
1056 ok (casted == (
char*)&child_class_sig0+8,
"failed cast to simple_class (%p %p)\n", casted, &child_class_sig0);
1059 casted =
p__RTDynamicCast(&child_class_sig0, 0, &child_class_sig0_rtti.type_info[0], &child_class_sig0_rtti.type_info[1], 0);
1060 ok(casted == (
char*)&child_class_sig0+4,
"failed cast to child class (%p %p)\n", casted, &child_class_sig0);
1063 skip(
"signature==1 is not supported\n");
1068 ok (ti && !
strcmp(ti->
mangled,
"simple_class"),
"incorrect rtti data\n");
1071 ok (casted == (
void*)&simple_class,
"failed cast to void\n");
1074 ok (ti && !
strcmp(ti->
mangled,
"child_class"),
"incorrect rtti data\n");
1077 ok (casted == (
void*)&child_class,
"failed cast to void\n");
1082 ok (casted == (
char*)&child_class+8,
"failed cast to simple_class (%p %p)\n", casted, &child_class);
1085 casted =
p__RTDynamicCast(&child_class, 0, &child_class_rtti.type_info[0], &child_class_rtti.type_info[1], 0);
1086 ok(casted == (
char*)&child_class+4,
"failed cast to child class (%p %p)\n", casted, &child_class);
1088 casted =
p__RTDynamicCast(&virtual_base_class, 0, &virtual_base_class_rtti.type_info[0], &virtual_base_class_rtti.type_info[1], 0);
1089 ok(casted == &virtual_base_class.vbthis,
"failed cast to child class (%p %p)\n", casted, &virtual_base_class);
1103 {
"ABVVec4@ref2@dice@@",
"class dice::ref2::Vec4 const &",
TRUE},
1104 {
"?AV?$CDB_GEN_BIG_ENUM_FLAG@W4CDB_WYSIWYG_BITS_ENUM@@$0H@@@",
"class CDB_GEN_BIG_ENUM_FLAG<enum CDB_WYSIWYG_BITS_ENUM,7>",
TRUE},
1105 {
"?AV?$CDB_GEN_BIG_ENUM_FLAG@W4CDB_WYSIWYG_BITS_ENUM@@$0HO@@@",
"class CDB_GEN_BIG_ENUM_FLAG<enum CDB_WYSIWYG_BITS_ENUM,126>",
TRUE},
1106 {
"?AV?$CDB_GEN_BIG_ENUM_FLAG@W4CDB_WYSIWYG_BITS_ENUM@@$0HOA@@@",
"class CDB_GEN_BIG_ENUM_FLAG<enum CDB_WYSIWYG_BITS_ENUM,2016>",
TRUE},
1107 {
"?AV?$CDB_GEN_BIG_ENUM_FLAG@W4CDB_WYSIWYG_BITS_ENUM@@$0HOAA@@@",
"class CDB_GEN_BIG_ENUM_FLAG<enum CDB_WYSIWYG_BITS_ENUM,32256>",
TRUE},
1108 {
"?AV?$CDB_GEN_BIG_ENUM_FLAG@W4CDB_WYSIWYG_BITS_ENUM@@$01@@@",
"?AV?$CDB_GEN_BIG_ENUM_FLAG@W4CDB_WYSIWYG_BITS_ENUM@@$01@@@",
FALSE},
1113 for (
i = 0;
i < num_test;
i++)
1128 const char* s2start =
s2;
1130 while (*
s1 == *
s2 && *
s1) {
1134 if (*
s2 ==
' ' &&
s2 > s2start && *(
s2 - 1) ==
' ')
1138 }
while (*
s1 && *
s2);
1144 static struct {
const char*
in;
const char*
out;
const char *
broken;
unsigned int flags;}
test[] = {
1145 {
"??0bad_alloc@std@@QAE@ABV01@@Z",
1146 "public: __thiscall std::bad_alloc::bad_alloc(class std::bad_alloc const &)",
1147 "public: __thiscall std::bad_alloc::bad_alloc(class bad_alloc::bad_alloc const &)"},
1148 {
"??0bad_alloc@std@@QAE@PBD@Z",
1149 "public: __thiscall std::bad_alloc::bad_alloc(char const *)"},
1150 {
"??0bad_cast@@AAE@PBQBD@Z",
1151 "private: __thiscall bad_cast::bad_cast(char const * const *)"},
1152 {
"??0bad_cast@@QAE@ABQBD@Z",
1153 "public: __thiscall bad_cast::bad_cast(char const * const &)"},
1154 {
"??0bad_cast@@QAE@ABV0@@Z",
1155 "public: __thiscall bad_cast::bad_cast(class bad_cast const &)"},
1156 {
"??0bad_exception@std@@QAE@ABV01@@Z",
1157 "public: __thiscall std::bad_exception::bad_exception(class std::bad_exception const &)",
1158 "public: __thiscall std::bad_exception::bad_exception(class bad_exception::bad_exception const &)"},
1159 {
"??0bad_exception@std@@QAE@PBD@Z",
1160 "public: __thiscall std::bad_exception::bad_exception(char const *)"},
1161 {
"??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@ABV01@@Z",
1162 "public: __thiscall std::basic_filebuf<char,struct std::char_traits<char> >::basic_filebuf<char,struct std::char_traits<char> >(class std::basic_filebuf<char,struct std::char_traits<char> > const &)",
1163 "public: __thiscall std::basic_filebuf<char,struct std::char_traits<char> >::basic_filebuf<char,struct std::char_traits<char> >(class basic_filebuf<char,struct std::char_traits<char> >::basic_filebuf<char,struct std::char_traits<char> > const &)"},
1164 {
"??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z",
1165 "public: __thiscall std::basic_filebuf<char,struct std::char_traits<char> >::basic_filebuf<char,struct std::char_traits<char> >(struct _iobuf *)"},
1166 {
"??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z",
1167 "public: __thiscall std::basic_filebuf<char,struct std::char_traits<char> >::basic_filebuf<char,struct std::char_traits<char> >(enum std::_Uninitialized)",
1168 "public: __thiscall std::basic_filebuf<char,struct std::char_traits<char> >::basic_filebuf<char,struct std::char_traits<char> >(enum basic_filebuf<char,struct std::char_traits<char> >::_Uninitialized)"},
1169 {
"??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@ABV01@@Z",
1170 "public: __thiscall std::basic_filebuf<unsigned short,struct std::char_traits<unsigned short> >::basic_filebuf<unsigned short,struct std::char_traits<unsigned short> >(class std::basic_filebuf<unsigned short,struct std::char_traits<unsigned short> > const &)",
1171 "public: __thiscall std::basic_filebuf<unsigned short,struct std::char_traits<unsigned short> >::basic_filebuf<unsigned short,struct std::char_traits<unsigned short> >(class basic_filebuf<unsigned short,struct std::char_traits<unsigned short> >::basic_filebuf<unsigned short,struct std::char_traits<unsigned short> > const &)"},
1172 {
"??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z",
1173 "public: __thiscall std::basic_filebuf<unsigned short,struct std::char_traits<unsigned short> >::basic_filebuf<unsigned short,struct std::char_traits<unsigned short> >(struct _iobuf *)"},
1174 {
"??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z",
1175 "public: __thiscall std::basic_filebuf<unsigned short,struct std::char_traits<unsigned short> >::basic_filebuf<unsigned short,struct std::char_traits<unsigned short> >(enum std::_Uninitialized)",
1176 "public: __thiscall std::basic_filebuf<unsigned short,struct std::char_traits<unsigned short> >::basic_filebuf<unsigned short,struct std::char_traits<unsigned short> >(enum basic_filebuf<unsigned short,struct std::char_traits<unsigned short> >::_Uninitialized)"},
1177 {
"??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z",
1178 "public: __thiscall std::basic_stringstream<char,struct std::char_traits<char>,class std::allocator<char> >::basic_stringstream<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_stringstream<char,struct std::char_traits<char>,class std::allocator<char> > const &)",
1179 "public: __thiscall std::basic_stringstream<char,struct std::char_traits<char>,class std::allocator<char> >::basic_stringstream<char,struct std::char_traits<char>,class std::allocator<char> >(class basic_stringstream<char,struct std::char_traits<char>,class std::allocator<char> >::basic_stringstream<char,struct std::char_traits<char>,class std::allocator<char> > const &)"},
1180 {
"??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z",
1181 "public: __thiscall std::basic_stringstream<char,struct std::char_traits<char>,class std::allocator<char> >::basic_stringstream<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int)",
1182 "public: __thiscall std::basic_stringstream<char,struct std::char_traits<char>,class std::allocator<char> >::basic_stringstream<char,struct std::char_traits<char>,class std::allocator<char> >(class basic_stringstream<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int)"},
1183 {
"??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z",
1184 "public: __thiscall std::basic_stringstream<char,struct std::char_traits<char>,class std::allocator<char> >::basic_stringstream<char,struct std::char_traits<char>,class std::allocator<char> >(int)"},
1185 {
"??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@@Z",
1186 "public: __thiscall std::basic_stringstream<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::basic_stringstream<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >(class std::basic_stringstream<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > const &)",
1187 "public: __thiscall std::basic_stringstream<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::basic_stringstream<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >(class basic_stringstream<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::basic_stringstream<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > const &)"},
1188 {
"??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z",
1189 "public: __thiscall std::basic_stringstream<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::basic_stringstream<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >(class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > const &,int)",
1190 "public: __thiscall std::basic_stringstream<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::basic_stringstream<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >(class basic_stringstream<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > const &,int)"},
1191 {
"??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z",
1192 "public: __thiscall std::basic_stringstream<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::basic_stringstream<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >(int)"},
1193 {
"??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@ABV_Locinfo@1@I@Z",
1194 "public: __thiscall std::num_get<char,class std::istreambuf_iterator<char,struct std::char_traits<char> > >::num_get<char,class std::istreambuf_iterator<char,struct std::char_traits<char> > >(class std::_Locinfo const &,unsigned int)",
1195 "public: __thiscall std::num_get<char,class std::istreambuf_iterator<char,struct std::char_traits<char> > >::num_get<char,class std::istreambuf_iterator<char,struct std::char_traits<char> > >(class num_get<char,class std::istreambuf_iterator<char,struct std::char_traits<char> > >::_Locinfo const &,unsigned int)"},
1196 {
"??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@I@Z",
1197 "public: __thiscall std::num_get<char,class std::istreambuf_iterator<char,struct std::char_traits<char> > >::num_get<char,class std::istreambuf_iterator<char,struct std::char_traits<char> > >(unsigned int)"},
1198 {
"??0?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QAE@ABV_Locinfo@1@I@Z",
1199 "public: __thiscall std::num_get<unsigned short,class std::istreambuf_iterator<unsigned short,struct std::char_traits<unsigned short> > >::num_get<unsigned short,class std::istreambuf_iterator<unsigned short,struct std::char_traits<unsigned short> > >(class std::_Locinfo const &,unsigned int)",
1200 "public: __thiscall std::num_get<unsigned short,class std::istreambuf_iterator<unsigned short,struct std::char_traits<unsigned short> > >::num_get<unsigned short,class std::istreambuf_iterator<unsigned short,struct std::char_traits<unsigned short> > >(class num_get<unsigned short,class std::istreambuf_iterator<unsigned short,struct std::char_traits<unsigned short> > >::_Locinfo const &,unsigned int)"},
1201 {
"??0?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QAE@I@Z",
"public: __thiscall std::num_get<unsigned short,class std::istreambuf_iterator<unsigned short,struct std::char_traits<unsigned short> > >::num_get<unsigned short,class std::istreambuf_iterator<unsigned short,struct std::char_traits<unsigned short> > >(unsigned int)"},
1202 {
"??0streambuf@@QAE@ABV0@@Z",
"public: __thiscall streambuf::streambuf(class streambuf const &)"},
1203 {
"??0strstreambuf@@QAE@ABV0@@Z",
"public: __thiscall strstreambuf::strstreambuf(class strstreambuf const &)"},
1204 {
"??0strstreambuf@@QAE@H@Z",
"public: __thiscall strstreambuf::strstreambuf(int)"},
1205 {
"??0strstreambuf@@QAE@P6APAXJ@ZP6AXPAX@Z@Z",
"public: __thiscall strstreambuf::strstreambuf(void * (__cdecl*)(long),void (__cdecl*)(void *))"},
1206 {
"??0strstreambuf@@QAE@PADH0@Z",
"public: __thiscall strstreambuf::strstreambuf(char *,int,char *)"},
1207 {
"??0strstreambuf@@QAE@PAEH0@Z",
"public: __thiscall strstreambuf::strstreambuf(unsigned char *,int,unsigned char *)"},
1208 {
"??0strstreambuf@@QAE@XZ",
"public: __thiscall strstreambuf::strstreambuf(void)"},
1209 {
"??1__non_rtti_object@std@@UAE@XZ",
"public: virtual __thiscall std::__non_rtti_object::~__non_rtti_object(void)"},
1210 {
"??1__non_rtti_object@@UAE@XZ",
"public: virtual __thiscall __non_rtti_object::~__non_rtti_object(void)"},
1211 {
"??1?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@UAE@XZ",
"public: virtual __thiscall std::num_get<char,class std::istreambuf_iterator<char,struct std::char_traits<char> > >::~num_get<char,class std::istreambuf_iterator<char,struct std::char_traits<char> > >(void)"},
1212 {
"??1?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@UAE@XZ",
"public: virtual __thiscall std::num_get<unsigned short,class std::istreambuf_iterator<unsigned short,struct std::char_traits<unsigned short> > >::~num_get<unsigned short,class std::istreambuf_iterator<unsigned short,struct std::char_traits<unsigned short> > >(void)"},
1213 {
"??4istream_withassign@@QAEAAV0@ABV0@@Z",
"public: class istream_withassign & __thiscall istream_withassign::operator=(class istream_withassign const &)"},
1214 {
"??4istream_withassign@@QAEAAVistream@@ABV1@@Z",
"public: class istream & __thiscall istream_withassign::operator=(class istream const &)"},
1215 {
"??4istream_withassign@@QAEAAVistream@@PAVstreambuf@@@Z",
"public: class istream & __thiscall istream_withassign::operator=(class streambuf *)"},
1216 {
"??5std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAC@Z",
"class std::basic_istream<char,struct std::char_traits<char> > & __cdecl std::operator>>(class std::basic_istream<char,struct std::char_traits<char> > &,signed char &)"},
1217 {
"??5std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAD@Z",
"class std::basic_istream<char,struct std::char_traits<char> > & __cdecl std::operator>>(class std::basic_istream<char,struct std::char_traits<char> > &,char &)"},
1218 {
"??5std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAE@Z",
"class std::basic_istream<char,struct std::char_traits<char> > & __cdecl std::operator>>(class std::basic_istream<char,struct std::char_traits<char> > &,unsigned char &)"},
1219 {
"??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z",
"public: class std::basic_ostream<unsigned short,struct std::char_traits<unsigned short> > & __thiscall std::basic_ostream<unsigned short,struct std::char_traits<unsigned short> >::operator<<(class std::ios_base & (__cdecl*)(class std::ios_base &))"},
1220 {
"??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z",
"public: class std::basic_ostream<unsigned short,struct std::char_traits<unsigned short> > & __thiscall std::basic_ostream<unsigned short,struct std::char_traits<unsigned short> >::operator<<(class std::basic_streambuf<unsigned short,struct std::char_traits<unsigned short> > *)"},
1221 {
"??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@PBX@Z",
"public: class std::basic_ostream<unsigned short,struct std::char_traits<unsigned short> > & __thiscall std::basic_ostream<unsigned short,struct std::char_traits<unsigned short> >::operator<<(void const *)"},
1222 {
"??_8?$basic_fstream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@",
"const std::basic_fstream<char,struct std::char_traits<char> >::`vbtable'{for `std::basic_ostream<char,struct std::char_traits<char> >'}"},
1223 {
"??_8?$basic_fstream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@",
"const std::basic_fstream<unsigned short,struct std::char_traits<unsigned short> >::`vbtable'{for `std::basic_istream<unsigned short,struct std::char_traits<unsigned short> >'}"},
1224 {
"??_8?$basic_fstream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@",
"const std::basic_fstream<unsigned short,struct std::char_traits<unsigned short> >::`vbtable'{for `std::basic_ostream<unsigned short,struct std::char_traits<unsigned short> >'}"},
1225 {
"??9std@@YA_NPBDABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z",
"bool __cdecl std::operator!=(char const *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)"},
1226 {
"??9std@@YA_NPBGABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z",
"bool __cdecl std::operator!=(unsigned short const *,class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > const &)"},
1227 {
"??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z",
"public: char & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::operator[](unsigned int)"},
1228 {
"??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z",
"public: char const & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::operator[](unsigned int)const "},
1229 {
"??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGI@Z",
"public: unsigned short & __thiscall std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::operator[](unsigned int)"},
1230 {
"??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGI@Z",
"public: unsigned short const & __thiscall std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::operator[](unsigned int)const "},
1231 {
"?abs@std@@YAMABV?$complex@M@1@@Z",
"float __cdecl std::abs(class std::complex<float> const &)"},
1232 {
"?abs@std@@YANABV?$complex@N@1@@Z",
"double __cdecl std::abs(class std::complex<double> const &)"},
1233 {
"?abs@std@@YAOABV?$complex@O@1@@Z",
"long double __cdecl std::abs(class std::complex<long double> const &)"},
1234 {
"?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A",
"class std::basic_istream<char,struct std::char_traits<char> > std::cin"},
1235 {
"?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z",
"protected: virtual class std::istreambuf_iterator<char,struct std::char_traits<char> > __thiscall std::num_get<char,class std::istreambuf_iterator<char,struct std::char_traits<char> > >::do_get(class std::istreambuf_iterator<char,struct std::char_traits<char> >,class std::istreambuf_iterator<char,struct std::char_traits<char> >,class std::ios_base &,int &,unsigned short &)const "},
1236 {
"?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z",
"protected: virtual class std::istreambuf_iterator<char,struct std::char_traits<char> > __thiscall std::num_get<char,class std::istreambuf_iterator<char,struct std::char_traits<char> > >::do_get(class std::istreambuf_iterator<char,struct std::char_traits<char> >,class std::istreambuf_iterator<char,struct std::char_traits<char> >,class std::ios_base &,int &,unsigned int &)const "},
1237 {
"?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z",
"protected: virtual class std::istreambuf_iterator<char,struct std::char_traits<char> > __thiscall std::num_get<char,class std::istreambuf_iterator<char,struct std::char_traits<char> > >::do_get(class std::istreambuf_iterator<char,struct std::char_traits<char> >,class std::istreambuf_iterator<char,struct std::char_traits<char> >,class std::ios_base &,int &,long &)const "},
1238 {
"?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z",
"protected: virtual class std::istreambuf_iterator<char,struct std::char_traits<char> > __thiscall std::num_get<char,class std::istreambuf_iterator<char,struct std::char_traits<char> > >::do_get(class std::istreambuf_iterator<char,struct std::char_traits<char> >,class std::istreambuf_iterator<char,struct std::char_traits<char> >,class std::ios_base &,int &,unsigned long &)const "},
1239 {
"?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z",
"protected: virtual class std::istreambuf_iterator<char,struct std::char_traits<char> > __thiscall std::num_get<char,class std::istreambuf_iterator<char,struct std::char_traits<char> > >::do_get(class std::istreambuf_iterator<char,struct std::char_traits<char> >,class std::istreambuf_iterator<char,struct std::char_traits<char> >,class std::ios_base &,int &,float &)const "},
1240 {
"?_query_new_handler@@YAP6AHI@ZXZ",
"int (__cdecl*__cdecl _query_new_handler(void))(unsigned int)"},
1241 {
"?register_callback@ios_base@std@@QAEXP6AXW4event@12@AAV12@H@ZH@Z",
"public: void __thiscall std::ios_base::register_callback(void (__cdecl*)(enum std::ios_base::event,class std::ios_base &,int),int)"},
1242 {
"?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@JW4seekdir@ios_base@2@@Z",
"public: class std::basic_istream<char,struct std::char_traits<char> > & __thiscall std::basic_istream<char,struct std::char_traits<char> >::seekg(long,enum std::ios_base::seekdir)"},
1243 {
"?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z",
"public: class std::basic_istream<char,struct std::char_traits<char> > & __thiscall std::basic_istream<char,struct std::char_traits<char> >::seekg(class std::fpos<int>)"},
1244 {
"?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@JW4seekdir@ios_base@2@@Z",
"public: class std::basic_istream<unsigned short,struct std::char_traits<unsigned short> > & __thiscall std::basic_istream<unsigned short,struct std::char_traits<unsigned short> >::seekg(long,enum std::ios_base::seekdir)"},
1245 {
"?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z",
"public: class std::basic_istream<unsigned short,struct std::char_traits<unsigned short> > & __thiscall std::basic_istream<unsigned short,struct std::char_traits<unsigned short> >::seekg(class std::fpos<int>)"},
1246 {
"?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z",
"protected: virtual class std::fpos<int> __thiscall std::basic_filebuf<char,struct std::char_traits<char> >::seekoff(long,enum std::ios_base::seekdir,int)"},
1247 {
"?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z",
"protected: virtual class std::fpos<int> __thiscall std::basic_filebuf<unsigned short,struct std::char_traits<unsigned short> >::seekoff(long,enum std::ios_base::seekdir,int)"},
1248 {
"?set_new_handler@@YAP6AXXZP6AXXZ@Z",
"void (__cdecl*__cdecl set_new_handler(void (__cdecl*)(void)))(void)"},
1249 {
"?str@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z",
"public: void __thiscall std::basic_istringstream<char,struct std::char_traits<char>,class std::allocator<char> >::str(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)"},
1250 {
"?str@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ",
"public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall std::basic_istringstream<char,struct std::char_traits<char>,class std::allocator<char> >::str(void)const "},
1251 {
"?str@?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z",
"public: void __thiscall std::basic_istringstream<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::str(class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > const &)"},
1252 {
"?str@?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ",
"public: class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > __thiscall std::basic_istringstream<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::str(void)const "},
1253 {
"?str@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z",
"public: void __thiscall std::basic_ostringstream<char,struct std::char_traits<char>,class std::allocator<char> >::str(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)"},
1254 {
"?str@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ",
"public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall std::basic_ostringstream<char,struct std::char_traits<char>,class std::allocator<char> >::str(void)const "},
1255 {
"?str@?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z",
"public: void __thiscall std::basic_ostringstream<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::str(class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > const &)"},
1256 {
"?str@?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ",
"public: class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > __thiscall std::basic_ostringstream<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::str(void)const "},
1257 {
"?str@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z",
"public: void __thiscall std::basic_stringbuf<char,struct std::char_traits<char>,class std::allocator<char> >::str(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)"},
1258 {
"?str@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ",
"public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall std::basic_stringbuf<char,struct std::char_traits<char>,class std::allocator<char> >::str(void)const "},
1259 {
"?str@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z",
"public: void __thiscall std::basic_stringbuf<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::str(class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > const &)"},
1260 {
"?str@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ",
"public: class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > __thiscall std::basic_stringbuf<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::str(void)const "},
1261 {
"?str@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z",
"public: void __thiscall std::basic_stringstream<char,struct std::char_traits<char>,class std::allocator<char> >::str(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)"},
1262 {
"?str@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ",
"public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall std::basic_stringstream<char,struct std::char_traits<char>,class std::allocator<char> >::str(void)const "},
1263 {
"?str@?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z",
"public: void __thiscall std::basic_stringstream<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::str(class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > const &)"},
1264 {
"?str@?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ",
"public: class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > __thiscall std::basic_stringstream<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::str(void)const "},
1265 {
"?_Sync@ios_base@std@@0_NA",
"private: static bool std::ios_base::_Sync"},
1266 {
"??_U@YAPAXI@Z",
"void * __cdecl operator new[](unsigned int)"},
1267 {
"??_V@YAXPAX@Z",
"void __cdecl operator delete[](void *)"},
1268 {
"??X?$_Complex_base@M@std@@QAEAAV01@ABM@Z",
"public: class std::_Complex_base<float> & __thiscall std::_Complex_base<float>::operator*=(float const &)"},
1269 {
"??Xstd@@YAAAV?$complex@M@0@AAV10@ABV10@@Z",
"class std::complex<float> & __cdecl std::operator*=(class std::complex<float> &,class std::complex<float> const &)"},
1270 {
"?aaa@@YAHAAUbbb@@@Z",
"int __cdecl aaa(struct bbb &)"},
1271 {
"?aaa@@YAHBAUbbb@@@Z",
"int __cdecl aaa(struct bbb & volatile)"},
1272 {
"?aaa@@YAHPAUbbb@@@Z",
"int __cdecl aaa(struct bbb *)"},
1273 {
"?aaa@@YAHQAUbbb@@@Z",
"int __cdecl aaa(struct bbb * const)"},
1274 {
"?aaa@@YAHRAUbbb@@@Z",
"int __cdecl aaa(struct bbb * volatile)"},
1275 {
"?aaa@@YAHSAUbbb@@@Z",
"int __cdecl aaa(struct bbb * const volatile)"},
1276 {
"??0aa.a@@QAE@XZ",
"??0aa.a@@QAE@XZ"},
1277 {
"??0aa$_3a@@QAE@XZ",
"public: __thiscall aa$_3a::aa$_3a(void)"},
1278 {
"??2?$aaa@AAUbbb@@AAUccc@@AAU2@@ddd@1eee@2@QAEHXZ",
"public: int __thiscall eee::eee::ddd::ddd::aaa<struct bbb &,struct ccc &,struct ccc &>::operator new(void)"},
1279 {
"?pSW@@3P6GHKPAX0PAU_tagSTACKFRAME@@0P6GH0K0KPAK@ZP6GPAX0K@ZP6GK0K@ZP6GK00PAU_tagADDRESS@@@Z@ZA",
"int (__stdcall* pSW)(unsigned long,void *,void *,struct _tagSTACKFRAME *,void *,int (__stdcall*)(void *,unsigned long,void *,unsigned long,unsigned long *),void * (__stdcall*)(void *,unsigned long),unsigned long (__stdcall*)(void *,unsigned long),unsigned long (__stdcall*)(void *,void *,struct _tagADDRESS *))"},
1280 {
"?$_aaa@Vbbb@@",
"_aaa<class bbb>"},
1281 {
"?$aaa@Vbbb@ccc@@Vddd@2@",
"aaa<class ccc::bbb,class ccc::ddd>"},
1282 {
"??0?$Foo@P6GHPAX0@Z@@QAE@PAD@Z",
"public: __thiscall Foo<int (__stdcall*)(void *,void *)>::Foo<int (__stdcall*)(void *,void *)>(char *)"},
1283 {
"??0?$Foo@P6GHPAX0@Z@@QAE@PAD@Z",
"__thiscall Foo<int (__stdcall*)(void *,void *)>::Foo<int (__stdcall*)(void *,void *)>(char *)",
NULL, 0x880},
1284 {
"?Qux@Bar@@0PAP6AHPAV1@AAH1PAH@ZA",
"private: static int (__cdecl** Bar::Qux)(class Bar *,int &,int &,int *)" },
1285 {
"?Qux@Bar@@0PAP6AHPAV1@AAH1PAH@ZA",
"Bar::Qux",
NULL, 0x1800},
1286 {
"?$AAA@$DBAB@",
"AAA<`template-parameter257'>"},
1287 {
"?$AAA@?C@",
"AAA<`template-parameter-2'>"},
1288 {
"?$AAA@PAUBBB@@",
"AAA<struct BBB *>"},
1289 {
"??$ccccc@PAVaaa@@@bar@bb@foo@@DGPAV0@PAV0@PAVee@@IPAPAVaaa@@1@Z",
1290 "private: static class bar * __stdcall foo::bb::bar::ccccc<class aaa *>(class bar *,class ee *,unsigned int,class aaa * *,class ee *)",
1291 "??$ccccc@PAVaaa@@@bar@bb@foo@@DGPAV0@PAV0@PAVee@@IPAPAVaaa@@1@Z"},
1292 {
"?f@T@@QAEHQCY1BE@BO@D@Z",
"public: int __thiscall T::f(char (volatile * const)[20][30])"},
1293 {
"?f@T@@QAEHQAY2BE@BO@CI@D@Z",
"public: int __thiscall T::f(char (* const)[20][30][40])"},
1294 {
"?f@T@@QAEHQAY1BE@BO@$$CBD@Z",
"public: int __thiscall T::f(char const (* const)[20][30])"},
1295 {
"??0?$Foo@U?$vector_c@H$00$01$0?1$0A@$0A@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@@mpl@boost@@@@QAE@XZ",
1296 "public: __thiscall Foo<struct boost::mpl::vector_c<int,1,2,-2,0,0,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647> >::Foo<struct boost::mpl::vector_c<int,1,2,-2,0,0,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647> >(void)"},
1297 {
"?swprintf@@YAHPAGIPBGZZ",
"int __cdecl swprintf(unsigned short *,unsigned int,unsigned short const *,...)"},
1298 {
"?vswprintf@@YAHPAGIPBGPAD@Z",
"int __cdecl vswprintf(unsigned short *,unsigned int,unsigned short const *,char *)"},
1299 {
"?vswprintf@@YAHPA_WIPB_WPAD@Z",
"int __cdecl vswprintf(wchar_t *,unsigned int,wchar_t const *,char *)"},
1300 {
"?swprintf@@YAHPA_WIPB_WZZ",
"int __cdecl swprintf(wchar_t *,unsigned int,wchar_t const *,...)"},
1301 {
"??Xstd@@YAAEAV?$complex@M@0@AEAV10@AEBV10@@Z",
"class std::complex<float> & __ptr64 __cdecl std::operator*=(class std::complex<float> & __ptr64,class std::complex<float> const & __ptr64)"},
1302 {
"?_Doraise@bad_cast@std@@MEBAXXZ",
"protected: virtual void __cdecl std::bad_cast::_Doraise(void)const __ptr64"},
1303 {
"??$?DM@std@@YA?AV?$complex@M@0@ABMABV10@@Z",
1304 "class std::complex<float> __cdecl std::operator*<float>(float const &,class std::complex<float> const &)",
1305 "??$?DM@std@@YA?AV?$complex@M@0@ABMABV10@@Z"},
1306 {
"?_R2@?BN@???$_Fabs@N@std@@YANAEBV?$complex@N@1@PEAH@Z@4NB",
1307 "double const `double __cdecl std::_Fabs<double>(class std::complex<double> const & __ptr64,int * __ptr64)'::`29'::_R2",
1308 "?_R2@?BN@???$_Fabs@N@std@@YANAEBV?$complex@N@1@PEAH@Z@4NB"},
1309 {
"?vtordisp_thunk@std@@$4PPPPPPPM@3EAA_NXZ",
1310 "[thunk]:public: virtual bool __cdecl std::vtordisp_thunk`vtordisp{4294967292,4}' (void) __ptr64",
1311 "[thunk]:public: virtual bool __cdecl std::vtordisp_thunk`vtordisp{-4,4}' (void) __ptr64"},
1312 {
"??_9CView@@$BBII@AE",
1313 "[thunk]: __thiscall CView::`vcall'{392,{flat}}' }'",
1314 "[thunk]: __thiscall CView::`vcall'{392,{flat}}' "},
1315 {
"?_dispatch@_impl_Engine@SalomeApp@@$R4CE@BA@PPPPPPPM@7AE_NAAVomniCallHandle@@@Z",
1316 "[thunk]:public: virtual bool __thiscall SalomeApp::_impl_Engine::_dispatch`vtordispex{36,16,4294967292,8}' (class omniCallHandle &)",
1317 "?_dispatch@_impl_Engine@SalomeApp@@$R4CE@BA@PPPPPPPM@7AE_NAAVomniCallHandle@@@Z"},
1318 {
"?_Doraise@bad_cast@std@@MEBAXXZ",
"protected: virtual void __cdecl std::bad_cast::_Doraise(void)",
NULL, 0x60},
1319 {
"??Xstd@@YAAEAV?$complex@M@0@AEAV10@AEBV10@@Z",
"class std::complex<float> & ptr64 cdecl std::operator*=(class std::complex<float> & ptr64,class std::complex<float> const & ptr64)",
NULL, 1},
1320 {
"??Xstd@@YAAEAV?$complex@M@0@AEAV10@AEBV10@@Z",
1321 "class std::complex<float> & std::operator*=(class std::complex<float> &,class std::complex<float> const &)",
1322 "??Xstd@@YAAEAV?$complex@M@0@AEAV10@AEBV10@@Z", 2},
1323 {
"??$run@XVTask_Render_Preview@@@QtConcurrent@@YA?AV?$QFuture@X@@PEAVTask_Render_Preview@@P82@EAAXXZ@Z",
1324 "class QFuture<void> __cdecl QtConcurrent::run<void,class Task_Render_Preview>(class Task_Render_Preview * __ptr64,void (__cdecl Task_Render_Preview::*)(void) __ptr64)",
1325 "??$run@XVTask_Render_Preview@@@QtConcurrent@@YA?AV?$QFuture@X@@PEAVTask_Render_Preview@@P82@EAAXXZ@Z"},
1326 {
"??_E?$TStrArray@$$BY0BAA@D$0BA@@@UAEPAXI@Z",
1327 "public: virtual void * __thiscall TStrArray<char [256],16>::`vector deleting destructor'(unsigned int)"},
1332 for (
i = 0;
i < num_test;
i++)
1336 if (!
name)
continue;
1339 "%u: Got name \"%s\"\n",
i,
name );
1342 "%u: Expected \"%s\"\n",
i,
test[
i].
out );
int strcmp(const char *String1, const char *String2)
char * strcpy(char *DstString, const char *SrcString)
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLboolean GLboolean GLboolean b
GLboolean GLboolean GLboolean GLboolean a
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define todo_wine_if(is_todo)
#define RTTI_REF_SIG0(instance, name, base)
static void * get_obj_locator(void *cppobj)
static char *__thiscall * ptype_info_raw_name(type_info *)
struct __type_info type_info
static void test_demangle_datatype(void)
static vtable_ptr * pbad_typeid_vtable
static char *__thiscall * pexception_what(exception *)
static void test_bad_typeid(void)
struct __exception exception
static exception *__thiscall * pexception_opequals(exception *, exception *)
static char *__thiscall * pbad_typeid_what(exception *)
static exception *__thiscall * pbad_typeid_opequals(exception *, exception *)
#define DEFINE_RTTI_REF(type, name)
static char *__thiscall * pbad_cast_what(exception *)
#define call_func2(func, _this, a)
static void *__cdecl * pmalloc(unsigned int)
static void *__cdecl * p__RTCastToVoid(void *)
static void * bAncientVersion
#define call_func1(func, _this)
static char *__cdecl * p__unDName(char *, const char *, int, void *, void *, unsigned short int)
static vtable_ptr * p__non_rtti_object_vtable
static void test_bad_cast(void)
static void *__cdecl * poperator_new(unsigned int)
static void test_type_info(void)
static void *__cdecl * p__RTDynamicCast(void *, int, void *, void *, int)
static exception *__thiscall * pbad_cast_opequals(exception *, exception *)
static char *__thiscall * ptype_info_name(type_info *)
static int strcmp_space(const char *s1, const char *s2)
static void test_demangle(void)
#define init_thiscall_thunk()
static vtable_ptr * pbad_cast_vtable
static vtable_ptr * pexception_vtable
static exception *__thiscall * p__non_rtti_object_opequals(exception *, exception *)
static BOOL InitFunctionPtrs(void)
static void test_exception(void)
static char *__thiscall * p__non_rtti_object_what(exception *)
static void test_rtti(void)
static type_info *static type_info *static type_info *static type_info *__cdecl * p__RTtypeid(void *)
#define RTTI_REF(instance, name)
static void test___non_rtti_object(void)
static vtable_ptr * get_vtable(void *obj)
#define PAGE_EXECUTE_READWRITE
LPVOID NTAPI VirtualAlloc(IN LPVOID lpAddress, IN SIZE_T dwSize, IN DWORD flAllocationType, IN DWORD flProtect)