aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Christopher <echristo@apple.com>2012-06-04 21:32:12 +0000
committerEric Christopher <echristo@apple.com>2012-06-04 21:32:12 +0000
commit328584e9eddf0ff388b0700b1e865ae046a30a9c (patch)
tree442bcf2b953eca0f0b5b37a3dd72c5b04d78627e
parentcacf718381dda1b23efedf3deb02170186095cc0 (diff)
Add a testcase for C++11 union support.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157952 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/CodeGenCXX/debug-info-union.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/CodeGenCXX/debug-info-union.cpp b/test/CodeGenCXX/debug-info-union.cpp
new file mode 100644
index 0000000000..e4e1abb261
--- /dev/null
+++ b/test/CodeGenCXX/debug-info-union.cpp
@@ -0,0 +1,16 @@
+// RUN: %clang_cc1 -emit-llvm -g -triple x86_64-apple-darwin -std=c++11 %s -o - | FileCheck %s
+
+union E {
+ int a;
+ float b;
+ int bb() { return a;}
+ float aa() { return b;}
+ E() { a = 0; }
+};
+
+E e;
+
+// CHECK: metadata !{i32 {{.*}}, null, metadata !"E", metadata !6, i32 3, i64 32, i64 32, i64 0, i32 0, null, metadata !11, i32 0, null} ; [ DW_TAG_union_type ]
+// CHECK: metadata !{i32 {{.*}}, i32 0, metadata !10, metadata !"bb", metadata !"bb", metadata !"_ZN1E2bbEv", metadata !6, i32 6, metadata !17, i1 false, i1 false, i32 0, i32 0, null, i32 256, i1 false, null, null, i32 0, metadata !19, i32 6} ; [ DW_TAG_subprogram ]
+// CHECK: metadata !{i32 {{.*}}, i32 0, metadata !10, metadata !"aa", metadata !"aa", metadata !"_ZN1E2aaEv", metadata !6, i32 7, metadata !22, i1 false, i1 false, i32 0, i32 0, null, i32 256, i1 false, null, null, i32 0, metadata !24, i32 7} ; [ DW_TAG_subprogram ]
+// CHECK: metadata !{i32 {{.*}}, i32 0, metadata !10, metadata !"E", metadata !"E", metadata !"", metadata !6, i32 8, metadata !7, i1 false, i1 false, i32 0, i32 0, null, i32 256, i1 false, null, null, i32 0, metadata !27, i32 8} ; [ DW_TAG_subprogram ]