This revision was not accepted when it landed; it landed in state "Needs 
Review".
This revision was automatically updated to reflect the committed changes.
Closed by commit rL326875: [SymbolFilePDB] Add missing Char16 and Char32 types 
in a few places (authored by asmith, committed by ).

Changed prior to commit:
  https://reviews.llvm.org/D44166?vs=137324&id=137325#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D44166

Files:
  lldb/trunk/lit/SymbolFile/PDB/Inputs/SimpleTypesTest.cpp
  lldb/trunk/lit/SymbolFile/PDB/typedefs.test
  lldb/trunk/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp


Index: lldb/trunk/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp
===================================================================
--- lldb/trunk/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp
+++ lldb/trunk/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: lldb/trunk/lit/SymbolFile/PDB/Inputs/SimpleTypesTest.cpp
===================================================================
--- lldb/trunk/lit/SymbolFile/PDB/Inputs/SimpleTypesTest.cpp
+++ lldb/trunk/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;
 }
Index: lldb/trunk/lit/SymbolFile/PDB/typedefs.test
===================================================================
--- lldb/trunk/lit/SymbolFile/PDB/typedefs.test
+++ lldb/trunk/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: lldb/trunk/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp
===================================================================
--- lldb/trunk/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp
+++ lldb/trunk/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: lldb/trunk/lit/SymbolFile/PDB/Inputs/SimpleTypesTest.cpp
===================================================================
--- lldb/trunk/lit/SymbolFile/PDB/Inputs/SimpleTypesTest.cpp
+++ lldb/trunk/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;
 }
Index: lldb/trunk/lit/SymbolFile/PDB/typedefs.test
===================================================================
--- lldb/trunk/lit/SymbolFile/PDB/typedefs.test
+++ lldb/trunk/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
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to