[Lldb-commits] [PATCH] D44166: [SymbolFilePDB] Add missing Char16 and Char32 types in a few places
Aaron Smith via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Tue Mar 6 21:14:55 PST 2018
asmith updated this revision to Diff 137324.
asmith added a comment.
Add test
https://reviews.llvm.org/D44166
Files:
lit/SymbolFile/PDB/Inputs/SimpleTypesTest.cpp
lit/SymbolFile/PDB/typedefs.test
source/Plugins/SymbolFile/PDB/PDBASTParser.cpp
Index: source/Plugins/SymbolFile/PDB/PDBASTParser.cpp
===================================================================
--- source/Plugins/SymbolFile/PDB/PDBASTParser.cpp
+++ source/Plugins/SymbolFile/PDB/PDBASTParser.cpp
@@ -59,6 +59,8 @@
case PDB_BuiltinType::Int:
case PDB_BuiltinType::Long:
case PDB_BuiltinType::Char:
+ case PDB_BuiltinType::Char16:
+ case PDB_BuiltinType::Char32:
return lldb::eEncodingSint;
case PDB_BuiltinType::Bool:
case PDB_BuiltinType::UInt:
@@ -126,6 +128,10 @@
if (width == ast->getTypeSize(ast->WCharTy))
return CompilerType(ast, ast->WCharTy);
break;
+ case PDB_BuiltinType::Char16:
+ return CompilerType(ast, ast->Char16Ty);
+ case PDB_BuiltinType::Char32:
+ return CompilerType(ast, ast->Char32Ty);
case PDB_BuiltinType::Float:
// Note: types `long double` and `double` have same bit size in MSVC and there
// is no information in the PDB to distinguish them. So when falling back
@@ -162,6 +168,10 @@
return ConstString("HRESULT");
case PDB_BuiltinType::BCD:
return ConstString("BCD");
+ case PDB_BuiltinType::Char16:
+ return ConstString("char16_t");
+ case PDB_BuiltinType::Char32:
+ return ConstString("char32_t");
case PDB_BuiltinType::None:
return ConstString("...");
}
Index: lit/SymbolFile/PDB/typedefs.test
===================================================================
--- lit/SymbolFile/PDB/typedefs.test
+++ lit/SymbolFile/PDB/typedefs.test
@@ -14,6 +14,8 @@
CHECK: Module [[MOD:.*]]
CHECK: {{^[0-9A-F]+}}: SymbolVendor ([[MOD]])
+CHECK-DAG: name = "char32_t", size = 4, compiler_type = {{.*}} char32_t
+CHECK-DAG: name = "char16_t", size = 2, compiler_type = {{.*}} char16_t
CHECK-DAG: Type{{.*}} , name = "unsigned long", size = 4, compiler_type = {{.*}} unsigned long
CHECK-DAG: Type{{.*}} , size = 40, compiler_type = {{.*}} unsigned long [10]
CHECK-DAG: Type{{.*}} , name = "ULongArrayTypedef", compiler_type = {{.*}} typedef ULongArrayTypedef
Index: lit/SymbolFile/PDB/Inputs/SimpleTypesTest.cpp
===================================================================
--- lit/SymbolFile/PDB/Inputs/SimpleTypesTest.cpp
+++ lit/SymbolFile/PDB/Inputs/SimpleTypesTest.cpp
@@ -35,6 +35,12 @@
enum struct EnumStruct { red, blue, black };
EnumStruct EnumStructVar;
+typedef char16_t WChar16Typedef;
+WChar16Typedef WC16Var;
+
+typedef char32_t WChar32Typedef;
+WChar32Typedef WC32Var;
+
int main() {
return 0;
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D44166.137324.patch
Type: text/x-patch
Size: 2469 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20180307/59cf3506/attachment-0001.bin>
More information about the lldb-commits
mailing list