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;
+ }