Emit debug info for c++0x nullptr.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139752 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp
index 5061e2e..919c5f9 100644
--- a/lib/CodeGen/CGDebugInfo.cpp
+++ b/lib/CodeGen/CGDebugInfo.cpp
@@ -302,8 +302,8 @@
     assert(0 && "Unexpected builtin type UnknownAny");
     return llvm::DIType();
   case BuiltinType::NullPtr:
-    assert(0 && "Unexpected builtin type NullPtr");
-    return llvm::DIType();
+    return DBuilder.
+      createNullPtrType(BT->getName(CGM.getContext().getLangOptions()));
   case BuiltinType::Void:
     return llvm::DIType();
   case BuiltinType::ObjCClass:
diff --git a/test/CodeGenCXX/debug-info-char16.cpp b/test/CodeGenCXX/debug-info-char16.cpp
index d5bb432..3459b75 100644
--- a/test/CodeGenCXX/debug-info-char16.cpp
+++ b/test/CodeGenCXX/debug-info-char16.cpp
@@ -1,7 +1,8 @@
 // RUN: %clang_cc1 -S -std=c++0x -masm-verbose -g %s -o -| FileCheck %s
 
-//CHECK:	.byte	16
-//CHECK-NEXT: 	.ascii	 "char16_t"
+//CHECK: 	.ascii	 "char16_t"
+//CHECK-NEXT:	.byte	0
+//CHECK-NEXT:	.byte	16
 
 // 16 is DW_ATE_UTF (0x10) encoding attribute.
 char16_t char_a = u'h';
diff --git a/test/CodeGenCXX/debug-info-nullptr.cpp b/test/CodeGenCXX/debug-info-nullptr.cpp
new file mode 100644
index 0000000..3c6f316
--- /dev/null
+++ b/test/CodeGenCXX/debug-info-nullptr.cpp
@@ -0,0 +1,8 @@
+// RUN: %clang_cc1 -S -std=c++0x -masm-verbose -g %s -o -| FileCheck %s
+
+//CHECK: DW_TAG_unspecified_type
+//CHECK-NEXT: "nullptr_t"
+
+void foo() {
+  decltype(nullptr) t = 0;
+ }