# RTTI *type descriptor names*: a `.` and a bare type encoding, which is how the
# linker spells the string a `type_info` points at. What `llvm-undname` 18.1.3
# prints for each. The sibling `??_R0<type>@8` names the descriptor object and
# writes the same words without `Name`; one of those is in msvc-llvm-corpus.txt.
# The descriptor *objects* are here too: same encodings, `??_R0...@8` instead of `.`.
.H	int `RTTI Type Descriptor Name'
.X	void `RTTI Type Descriptor Name'
.D	char `RTTI Type Descriptor Name'
.E	unsigned char `RTTI Type Descriptor Name'
.F	short `RTTI Type Descriptor Name'
.G	unsigned short `RTTI Type Descriptor Name'
.I	unsigned int `RTTI Type Descriptor Name'
.J	long `RTTI Type Descriptor Name'
.K	unsigned long `RTTI Type Descriptor Name'
.M	float `RTTI Type Descriptor Name'
.N	double `RTTI Type Descriptor Name'
.O	long double `RTTI Type Descriptor Name'
._N	bool `RTTI Type Descriptor Name'
._J	__int64 `RTTI Type Descriptor Name'
._K	unsigned __int64 `RTTI Type Descriptor Name'
._W	wchar_t `RTTI Type Descriptor Name'
._S	char16_t `RTTI Type Descriptor Name'
._U	char32_t `RTTI Type Descriptor Name'
.PEAX	void *`RTTI Type Descriptor Name'
.PEAH	int *`RTTI Type Descriptor Name'
.PEBD	char const *`RTTI Type Descriptor Name'
.AEAH	int &`RTTI Type Descriptor Name'
.AEBH	int const &`RTTI Type Descriptor Name'
.$$QEAH	int &&`RTTI Type Descriptor Name'
.PEAPEAH	int **`RTTI Type Descriptor Name'
.QEAH	int *const `RTTI Type Descriptor Name'
.PEAY01H	int (*`RTTI Type Descriptor Name')[2]
.PEAY0BA@H	int (*`RTTI Type Descriptor Name')[16]
.?AVFoo@@	class Foo `RTTI Type Descriptor Name'
.?AUBar@@	struct Bar `RTTI Type Descriptor Name'
.?AW4E@@	enum E `RTTI Type Descriptor Name'
.?AUBase@@	struct Base `RTTI Type Descriptor Name'
.?AV?$A@H@@	class A<int> `RTTI Type Descriptor Name'
.?AV?$vector@HV?$allocator@H@std@@@std@@	class std::vector<int, class std::allocator<int>> `RTTI Type Descriptor Name'
.?BVFoo@@	class Foo const `RTTI Type Descriptor Name'
.?CVFoo@@	class Foo volatile `RTTI Type Descriptor Name'
.?DVFoo@@	class Foo const volatile `RTTI Type Descriptor Name'
.PEAVFoo@@	class Foo *`RTTI Type Descriptor Name'
.PEBVFoo@@	class Foo const *`RTTI Type Descriptor Name'
.AEAVFoo@@	class Foo &`RTTI Type Descriptor Name'
.AEBVFoo@@	class Foo const &`RTTI Type Descriptor Name'
.?AUFoo@bar@@	struct bar::Foo `RTTI Type Descriptor Name'
.?AVFoo@?A0x1@@	class `anonymous namespace'::Foo `RTTI Type Descriptor Name'
.P6AHH@Z	int (__cdecl *`RTTI Type Descriptor Name')(int)
.P8B@@EAAHXZ	int (__cdecl B::*`RTTI Type Descriptor Name')(void)
.PEAP6AHH@Z	int (__cdecl **`RTTI Type Descriptor Name')(int)
.?AW4Enum@ns@@	enum ns::Enum `RTTI Type Descriptor Name'
.PEAU?$S@H@@	struct S<int> *`RTTI Type Descriptor Name'
.?AV<lambda_1>@@	class <lambda_1> `RTTI Type Descriptor Name'
.$$T	std::nullptr_t `RTTI Type Descriptor Name'
.?AUX@@	struct X `RTTI Type Descriptor Name'
.PEA_W	wchar_t *`RTTI Type Descriptor Name'
.AEA_N	bool &`RTTI Type Descriptor Name'
??_R0H@8	int `RTTI Type Descriptor'
??_R0X@8	void `RTTI Type Descriptor'
??_R0D@8	char `RTTI Type Descriptor'
??_R0E@8	unsigned char `RTTI Type Descriptor'
??_R0F@8	short `RTTI Type Descriptor'
??_R0G@8	unsigned short `RTTI Type Descriptor'
??_R0I@8	unsigned int `RTTI Type Descriptor'
??_R0J@8	long `RTTI Type Descriptor'
??_R0K@8	unsigned long `RTTI Type Descriptor'
??_R0M@8	float `RTTI Type Descriptor'
??_R0N@8	double `RTTI Type Descriptor'
??_R0O@8	long double `RTTI Type Descriptor'
??_R0_N@8	bool `RTTI Type Descriptor'
??_R0_J@8	__int64 `RTTI Type Descriptor'
??_R0_K@8	unsigned __int64 `RTTI Type Descriptor'
??_R0_W@8	wchar_t `RTTI Type Descriptor'
??_R0_S@8	char16_t `RTTI Type Descriptor'
??_R0_U@8	char32_t `RTTI Type Descriptor'
??_R0PEAX@8	void *`RTTI Type Descriptor'
??_R0PEAH@8	int *`RTTI Type Descriptor'
??_R0PEBD@8	char const *`RTTI Type Descriptor'
??_R0AEAH@8	int &`RTTI Type Descriptor'
??_R0AEBH@8	int const &`RTTI Type Descriptor'
??_R0$$QEAH@8	int &&`RTTI Type Descriptor'
??_R0PEAPEAH@8	int **`RTTI Type Descriptor'
??_R0QEAH@8	int *const `RTTI Type Descriptor'
??_R0PEAY01H@8	int (*`RTTI Type Descriptor')[2]
??_R0PEAY0BA@H@8	int (*`RTTI Type Descriptor')[16]
??_R0?AVFoo@@@8	class Foo `RTTI Type Descriptor'
??_R0?AUBar@@@8	struct Bar `RTTI Type Descriptor'
??_R0?AW4E@@@8	enum E `RTTI Type Descriptor'
??_R0?AUBase@@@8	struct Base `RTTI Type Descriptor'
??_R0?AV?$A@H@@@8	class A<int> `RTTI Type Descriptor'
??_R0?AV?$vector@HV?$allocator@H@std@@@std@@@8	class std::vector<int, class std::allocator<int>> `RTTI Type Descriptor'
??_R0?BVFoo@@@8	class Foo const `RTTI Type Descriptor'
??_R0?CVFoo@@@8	class Foo volatile `RTTI Type Descriptor'
??_R0?DVFoo@@@8	class Foo const volatile `RTTI Type Descriptor'
??_R0PEAVFoo@@@8	class Foo *`RTTI Type Descriptor'
??_R0PEBVFoo@@@8	class Foo const *`RTTI Type Descriptor'
??_R0AEAVFoo@@@8	class Foo &`RTTI Type Descriptor'
??_R0AEBVFoo@@@8	class Foo const &`RTTI Type Descriptor'
??_R0?AUFoo@bar@@@8	struct bar::Foo `RTTI Type Descriptor'
??_R0?AVFoo@?A0x1@@@8	class `anonymous namespace'::Foo `RTTI Type Descriptor'
??_R0P6AHH@Z@8	int (__cdecl *`RTTI Type Descriptor')(int)
??_R0P8B@@EAAHXZ@8	int (__cdecl B::*`RTTI Type Descriptor')(void)
??_R0PEAP6AHH@Z@8	int (__cdecl **`RTTI Type Descriptor')(int)
??_R0?AW4Enum@ns@@@8	enum ns::Enum `RTTI Type Descriptor'
??_R0PEAU?$S@H@@@8	struct S<int> *`RTTI Type Descriptor'
??_R0?AV<lambda_1>@@@8	class <lambda_1> `RTTI Type Descriptor'
??_R0$$T@8	std::nullptr_t `RTTI Type Descriptor'
??_R0?AUX@@@8	struct X `RTTI Type Descriptor'
??_R0PEA_W@8	wchar_t *`RTTI Type Descriptor'
??_R0AEA_N@8	bool &`RTTI Type Descriptor'
