Lgtm<br><div class="gmail_quote"><div dir="ltr">On Tue, Mar 6, 2018 at 9:14 PM Aaron Smith via Phabricator <<a href="mailto:reviews@reviews.llvm.org">reviews@reviews.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">asmith updated this revision to Diff 137324.<br>
asmith added a comment.<br>
<br>
Add test<br>
<br>
<br>
<a href="https://reviews.llvm.org/D44166" rel="noreferrer" target="_blank">https://reviews.llvm.org/D44166</a><br>
<br>
Files:<br>
  lit/SymbolFile/PDB/Inputs/SimpleTypesTest.cpp<br>
  lit/SymbolFile/PDB/typedefs.test<br>
  source/Plugins/SymbolFile/PDB/PDBASTParser.cpp<br>
<br>
<br>
Index: source/Plugins/SymbolFile/PDB/PDBASTParser.cpp<br>
===================================================================<br>
--- source/Plugins/SymbolFile/PDB/PDBASTParser.cpp<br>
+++ source/Plugins/SymbolFile/PDB/PDBASTParser.cpp<br>
@@ -59,6 +59,8 @@<br>
   case PDB_BuiltinType::Int:<br>
   case PDB_BuiltinType::Long:<br>
   case PDB_BuiltinType::Char:<br>
+  case PDB_BuiltinType::Char16:<br>
+  case PDB_BuiltinType::Char32:<br>
     return lldb::eEncodingSint;<br>
   case PDB_BuiltinType::Bool:<br>
   case PDB_BuiltinType::UInt:<br>
@@ -126,6 +128,10 @@<br>
     if (width == ast->getTypeSize(ast->WCharTy))<br>
       return CompilerType(ast, ast->WCharTy);<br>
     break;<br>
+  case PDB_BuiltinType::Char16:<br>
+    return CompilerType(ast, ast->Char16Ty);<br>
+  case PDB_BuiltinType::Char32:<br>
+    return CompilerType(ast, ast->Char32Ty);<br>
   case PDB_BuiltinType::Float:<br>
     // Note: types `long double` and `double` have same bit size in MSVC and there<br>
     // is no information in the PDB to distinguish them. So when falling back<br>
@@ -162,6 +168,10 @@<br>
     return ConstString("HRESULT");<br>
   case PDB_BuiltinType::BCD:<br>
     return ConstString("BCD");<br>
+  case PDB_BuiltinType::Char16:<br>
+    return ConstString("char16_t");<br>
+  case PDB_BuiltinType::Char32:<br>
+    return ConstString("char32_t");<br>
   case PDB_BuiltinType::None:<br>
     return ConstString("...");<br>
   }<br>
Index: lit/SymbolFile/PDB/typedefs.test<br>
===================================================================<br>
--- lit/SymbolFile/PDB/typedefs.test<br>
+++ lit/SymbolFile/PDB/typedefs.test<br>
@@ -14,6 +14,8 @@<br>
<br>
 CHECK: Module [[MOD:.*]]<br>
 CHECK: {{^[0-9A-F]+}}: SymbolVendor ([[MOD]])<br>
+CHECK-DAG: name = "char32_t", size = 4, compiler_type = {{.*}} char32_t<br>
+CHECK-DAG: name = "char16_t", size = 2, compiler_type = {{.*}} char16_t<br>
 CHECK-DAG: Type{{.*}} , name = "unsigned long", size = 4, compiler_type = {{.*}} unsigned long<br>
 CHECK-DAG: Type{{.*}} , size = 40, compiler_type = {{.*}} unsigned long [10]<br>
 CHECK-DAG: Type{{.*}} , name = "ULongArrayTypedef", compiler_type = {{.*}} typedef ULongArrayTypedef<br>
Index: lit/SymbolFile/PDB/Inputs/SimpleTypesTest.cpp<br>
===================================================================<br>
--- lit/SymbolFile/PDB/Inputs/SimpleTypesTest.cpp<br>
+++ lit/SymbolFile/PDB/Inputs/SimpleTypesTest.cpp<br>
@@ -35,6 +35,12 @@<br>
 enum struct EnumStruct { red, blue, black };<br>
 EnumStruct EnumStructVar;<br>
<br>
+typedef char16_t WChar16Typedef;<br>
+WChar16Typedef WC16Var;<br>
+<br>
+typedef char32_t WChar32Typedef;<br>
+WChar32Typedef WC32Var;<br>
+<br>
 int main() {<br>
   return 0;<br>
 }<br>
<br>
<br>
</blockquote></div>