aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2011-09-14 23:14:14 +0000
committerDevang Patel <dpatel@apple.com>2011-09-14 23:14:14 +0000
commitf60dca355d3e754b7a51726c7455d1e7583a65ba (patch)
treecc15e61677894cc5f980436e952f636b1a0e7dcd
parentde8a9050d79d66325a18168a0994fed125a7790d (diff)
Emit debug info for c++0x nullptr.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139752 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/CodeGen/CGDebugInfo.cpp4
-rw-r--r--test/CodeGenCXX/debug-info-char16.cpp5
-rw-r--r--test/CodeGenCXX/debug-info-nullptr.cpp8
3 files changed, 13 insertions, 4 deletions
diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp
index 5061e2e854..919c5f9940 100644
--- a/lib/CodeGen/CGDebugInfo.cpp
+++ b/lib/CodeGen/CGDebugInfo.cpp
@@ -302,8 +302,8 @@ llvm::DIType CGDebugInfo::CreateType(const BuiltinType *BT) {
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 d5bb43291c..3459b75776 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 0000000000..3c6f31615d
--- /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;
+ }