Commit de5fe893 authored by Eric Pouech's avatar Eric Pouech Committed by Alexandre Julliard

dbghelp/pdb: Add new basic type to represent char8_t introduced in C++20.

parent 9f3e8a51
...@@ -166,6 +166,7 @@ static void codeview_init_basic_types(struct module* module) ...@@ -166,6 +166,7 @@ static void codeview_init_basic_types(struct module* module)
cv_basic_types[T_WCHAR] = &symt_new_basic(module, btWChar, "wchar_t", 2)->symt; cv_basic_types[T_WCHAR] = &symt_new_basic(module, btWChar, "wchar_t", 2)->symt;
cv_basic_types[T_CHAR16] = &symt_new_basic(module, btChar16,"char16_t", 2)->symt; cv_basic_types[T_CHAR16] = &symt_new_basic(module, btChar16,"char16_t", 2)->symt;
cv_basic_types[T_CHAR32] = &symt_new_basic(module, btChar32,"char32_t", 4)->symt; cv_basic_types[T_CHAR32] = &symt_new_basic(module, btChar32,"char32_t", 4)->symt;
cv_basic_types[T_CHAR8] = &symt_new_basic(module, btChar8, "char8_t", 1)->symt;
cv_basic_types[T_INT2] = &symt_new_basic(module, btInt, "INT2", 2)->symt; cv_basic_types[T_INT2] = &symt_new_basic(module, btInt, "INT2", 2)->symt;
cv_basic_types[T_UINT2] = &symt_new_basic(module, btUInt, "UINT2", 2)->symt; cv_basic_types[T_UINT2] = &symt_new_basic(module, btUInt, "UINT2", 2)->symt;
cv_basic_types[T_INT4] = &symt_new_basic(module, btInt, "INT4", 4)->symt; cv_basic_types[T_INT4] = &symt_new_basic(module, btInt, "INT4", 4)->symt;
...@@ -194,6 +195,7 @@ static void codeview_init_basic_types(struct module* module) ...@@ -194,6 +195,7 @@ static void codeview_init_basic_types(struct module* module)
cv_basic_types[T_32PWCHAR] = &symt_new_pointer(module, cv_basic_types[T_WCHAR], 4)->symt; cv_basic_types[T_32PWCHAR] = &symt_new_pointer(module, cv_basic_types[T_WCHAR], 4)->symt;
cv_basic_types[T_32PCHAR16] = &symt_new_pointer(module, cv_basic_types[T_CHAR16], 4)->symt; cv_basic_types[T_32PCHAR16] = &symt_new_pointer(module, cv_basic_types[T_CHAR16], 4)->symt;
cv_basic_types[T_32PCHAR32] = &symt_new_pointer(module, cv_basic_types[T_CHAR32], 4)->symt; cv_basic_types[T_32PCHAR32] = &symt_new_pointer(module, cv_basic_types[T_CHAR32], 4)->symt;
cv_basic_types[T_32PCHAR8] = &symt_new_pointer(module, cv_basic_types[T_CHAR8], 4)->symt;
cv_basic_types[T_32PINT2] = &symt_new_pointer(module, cv_basic_types[T_INT2], 4)->symt; cv_basic_types[T_32PINT2] = &symt_new_pointer(module, cv_basic_types[T_INT2], 4)->symt;
cv_basic_types[T_32PUINT2] = &symt_new_pointer(module, cv_basic_types[T_UINT2], 4)->symt; cv_basic_types[T_32PUINT2] = &symt_new_pointer(module, cv_basic_types[T_UINT2], 4)->symt;
cv_basic_types[T_32PINT4] = &symt_new_pointer(module, cv_basic_types[T_INT4], 4)->symt; cv_basic_types[T_32PINT4] = &symt_new_pointer(module, cv_basic_types[T_INT4], 4)->symt;
...@@ -222,6 +224,7 @@ static void codeview_init_basic_types(struct module* module) ...@@ -222,6 +224,7 @@ static void codeview_init_basic_types(struct module* module)
cv_basic_types[T_64PWCHAR] = &symt_new_pointer(module, cv_basic_types[T_WCHAR], 8)->symt; cv_basic_types[T_64PWCHAR] = &symt_new_pointer(module, cv_basic_types[T_WCHAR], 8)->symt;
cv_basic_types[T_64PCHAR16] = &symt_new_pointer(module, cv_basic_types[T_CHAR16], 8)->symt; cv_basic_types[T_64PCHAR16] = &symt_new_pointer(module, cv_basic_types[T_CHAR16], 8)->symt;
cv_basic_types[T_64PCHAR32] = &symt_new_pointer(module, cv_basic_types[T_CHAR32], 8)->symt; cv_basic_types[T_64PCHAR32] = &symt_new_pointer(module, cv_basic_types[T_CHAR32], 8)->symt;
cv_basic_types[T_64PCHAR8] = &symt_new_pointer(module, cv_basic_types[T_CHAR8], 8)->symt;
cv_basic_types[T_64PINT2] = &symt_new_pointer(module, cv_basic_types[T_INT2], 8)->symt; cv_basic_types[T_64PINT2] = &symt_new_pointer(module, cv_basic_types[T_INT2], 8)->symt;
cv_basic_types[T_64PUINT2] = &symt_new_pointer(module, cv_basic_types[T_UINT2], 8)->symt; cv_basic_types[T_64PUINT2] = &symt_new_pointer(module, cv_basic_types[T_UINT2], 8)->symt;
cv_basic_types[T_64PINT4] = &symt_new_pointer(module, cv_basic_types[T_INT4], 8)->symt; cv_basic_types[T_64PINT4] = &symt_new_pointer(module, cv_basic_types[T_INT4], 8)->symt;
...@@ -250,6 +253,7 @@ static void codeview_init_basic_types(struct module* module) ...@@ -250,6 +253,7 @@ static void codeview_init_basic_types(struct module* module)
cv_basic_types[T_PWCHAR] = &symt_new_pointer(module, cv_basic_types[T_WCHAR], ptrsz)->symt; cv_basic_types[T_PWCHAR] = &symt_new_pointer(module, cv_basic_types[T_WCHAR], ptrsz)->symt;
cv_basic_types[T_PCHAR16] = &symt_new_pointer(module, cv_basic_types[T_CHAR16], ptrsz)->symt; cv_basic_types[T_PCHAR16] = &symt_new_pointer(module, cv_basic_types[T_CHAR16], ptrsz)->symt;
cv_basic_types[T_PCHAR32] = &symt_new_pointer(module, cv_basic_types[T_CHAR32], ptrsz)->symt; cv_basic_types[T_PCHAR32] = &symt_new_pointer(module, cv_basic_types[T_CHAR32], ptrsz)->symt;
cv_basic_types[T_PCHAR8] = &symt_new_pointer(module, cv_basic_types[T_CHAR8], ptrsz)->symt;
cv_basic_types[T_PINT2] = &symt_new_pointer(module, cv_basic_types[T_INT2], ptrsz)->symt; cv_basic_types[T_PINT2] = &symt_new_pointer(module, cv_basic_types[T_INT2], ptrsz)->symt;
cv_basic_types[T_PUINT2] = &symt_new_pointer(module, cv_basic_types[T_UINT2], ptrsz)->symt; cv_basic_types[T_PUINT2] = &symt_new_pointer(module, cv_basic_types[T_UINT2], ptrsz)->symt;
cv_basic_types[T_PINT4] = &symt_new_pointer(module, cv_basic_types[T_INT4], ptrsz)->symt; cv_basic_types[T_PINT4] = &symt_new_pointer(module, cv_basic_types[T_INT4], ptrsz)->symt;
......
...@@ -91,7 +91,8 @@ enum BasicType ...@@ -91,7 +91,8 @@ enum BasicType
btBSTR = 30, btBSTR = 30,
btHresult = 31, btHresult = 31,
btChar16 = 32, btChar16 = 32,
btChar32 = 33 btChar32 = 33,
btChar8 = 34,
}; };
/* kind of UDT */ /* kind of UDT */
......
...@@ -945,6 +945,7 @@ union codeview_fieldtype ...@@ -945,6 +945,7 @@ union codeview_fieldtype
#define T_UINT8 0x0077 /* 64-bit unsigned int */ #define T_UINT8 0x0077 /* 64-bit unsigned int */
#define T_CHAR16 0x007a /* 16-bit unicode char */ #define T_CHAR16 0x007a /* 16-bit unicode char */
#define T_CHAR32 0x007b /* 32-bit unicode char */ #define T_CHAR32 0x007b /* 32-bit unicode char */
#define T_CHAR8 0x007c /* 8-bit unicode char (C++ 20) */
/* near pointers to basic types */ /* near pointers to basic types */
#define T_PVOID 0x0103 /* near pointer to void */ #define T_PVOID 0x0103 /* near pointer to void */
...@@ -979,6 +980,7 @@ union codeview_fieldtype ...@@ -979,6 +980,7 @@ union codeview_fieldtype
#define T_PUINT8 0x0177 /* Near pointer to 64-bit unsigned int */ #define T_PUINT8 0x0177 /* Near pointer to 64-bit unsigned int */
#define T_PCHAR16 0x017a /* Near pointer to 16-bit unicode char */ #define T_PCHAR16 0x017a /* Near pointer to 16-bit unicode char */
#define T_PCHAR32 0x017b /* Near pointer to 32-bit unicode char */ #define T_PCHAR32 0x017b /* Near pointer to 32-bit unicode char */
#define T_PCHAR8 0x017c /* Near pointer to 8-bit unicode char */
/* far pointers to basic types */ /* far pointers to basic types */
#define T_PFVOID 0x0203 /* Far pointer to void */ #define T_PFVOID 0x0203 /* Far pointer to void */
...@@ -1013,6 +1015,7 @@ union codeview_fieldtype ...@@ -1013,6 +1015,7 @@ union codeview_fieldtype
#define T_PFUINT8 0x0277 /* Far pointer to 64-bit unsigned int */ #define T_PFUINT8 0x0277 /* Far pointer to 64-bit unsigned int */
#define T_PFCHAR16 0x027a /* Far pointer to 16-bit unicode char */ #define T_PFCHAR16 0x027a /* Far pointer to 16-bit unicode char */
#define T_PFCHAR32 0x027b /* Far pointer to 32-bit unicode char */ #define T_PFCHAR32 0x027b /* Far pointer to 32-bit unicode char */
#define T_PFCHAR8 0x027c /* Far pointer to 8-bit unicode char */
/* huge pointers to basic types */ /* huge pointers to basic types */
#define T_PHVOID 0x0303 /* Huge pointer to void */ #define T_PHVOID 0x0303 /* Huge pointer to void */
...@@ -1047,6 +1050,7 @@ union codeview_fieldtype ...@@ -1047,6 +1050,7 @@ union codeview_fieldtype
#define T_PHUINT8 0x0377 /* Huge pointer to 64-bit unsigned int */ #define T_PHUINT8 0x0377 /* Huge pointer to 64-bit unsigned int */
#define T_PHCHAR16 0x037a /* Huge pointer to 16-bit unicode char */ #define T_PHCHAR16 0x037a /* Huge pointer to 16-bit unicode char */
#define T_PHCHAR32 0x037b /* Huge pointer to 32-bit unicode char */ #define T_PHCHAR32 0x037b /* Huge pointer to 32-bit unicode char */
#define T_PHCHAR8 0x037c /* Huge pointer to 8-bit unicode char */
/* 32-bit near pointers to basic types */ /* 32-bit near pointers to basic types */
#define T_32PVOID 0x0403 /* 32-bit near pointer to void */ #define T_32PVOID 0x0403 /* 32-bit near pointer to void */
...@@ -1082,6 +1086,7 @@ union codeview_fieldtype ...@@ -1082,6 +1086,7 @@ union codeview_fieldtype
#define T_32PUINT8 0x0477 /* 16:32 near pointer to 64-bit unsigned int */ #define T_32PUINT8 0x0477 /* 16:32 near pointer to 64-bit unsigned int */
#define T_32PCHAR16 0x047a /* 16:32 near pointer to 16-bit unicode char */ #define T_32PCHAR16 0x047a /* 16:32 near pointer to 16-bit unicode char */
#define T_32PCHAR32 0x047b /* 16:32 near pointer to 32-bit unicode char */ #define T_32PCHAR32 0x047b /* 16:32 near pointer to 32-bit unicode char */
#define T_32PCHAR8 0x047c /* 16:32 near pointer to 8-bit unicode char */
/* 32-bit far pointers to basic types */ /* 32-bit far pointers to basic types */
#define T_32PFVOID 0x0503 /* 32-bit far pointer to void */ #define T_32PFVOID 0x0503 /* 32-bit far pointer to void */
...@@ -1117,6 +1122,7 @@ union codeview_fieldtype ...@@ -1117,6 +1122,7 @@ union codeview_fieldtype
#define T_32PFUINT8 0x0577 /* 16:32 far pointer to 64-bit unsigned int */ #define T_32PFUINT8 0x0577 /* 16:32 far pointer to 64-bit unsigned int */
#define T_32PFCHAR16 0x057a /* 16:32 far pointer to 16-bit unicode char */ #define T_32PFCHAR16 0x057a /* 16:32 far pointer to 16-bit unicode char */
#define T_32PFCHAR32 0x057b /* 16:32 far pointer to 32-bit unicode char */ #define T_32PFCHAR32 0x057b /* 16:32 far pointer to 32-bit unicode char */
#define T_32PFCHAR8 0x057c /* 16:32 far pointer to 8-bit unicode char */
/* 64-bit near pointers to basic types */ /* 64-bit near pointers to basic types */
#define T_64PVOID 0x0603 /* 64-bit near pointer to void */ #define T_64PVOID 0x0603 /* 64-bit near pointer to void */
...@@ -1152,6 +1158,7 @@ union codeview_fieldtype ...@@ -1152,6 +1158,7 @@ union codeview_fieldtype
#define T_64PUINT8 0x0677 /* 64 near pointer to 64-bit unsigned int */ #define T_64PUINT8 0x0677 /* 64 near pointer to 64-bit unsigned int */
#define T_64PCHAR16 0x067a /* 64 near pointer to 16-bit unicode char */ #define T_64PCHAR16 0x067a /* 64 near pointer to 16-bit unicode char */
#define T_64PCHAR32 0x067b /* 64 near pointer to 32-bit unicode char */ #define T_64PCHAR32 0x067b /* 64 near pointer to 32-bit unicode char */
#define T_64PCHAR8 0x067c /* 64 near pointer to 8-bit unicode char */
/* counts, bit masks, and shift values needed to access various parts of the built-in type numbers */ /* counts, bit masks, and shift values needed to access various parts of the built-in type numbers */
#define T_MAXPREDEFINEDTYPE 0x0580 /* maximum type index for all built-in types */ #define T_MAXPREDEFINEDTYPE 0x0580 /* maximum type index for all built-in types */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment