aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGenCXX/mangle-local-anonymous-unions.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2015-01-18 16:23:48 +0000
committerDimitry Andric <dim@FreeBSD.org>2015-01-18 16:23:48 +0000
commit06d4ba388873e6d1cfa9cd715a8935ecc8cd2097 (patch)
tree3eb853da77d46cc77c4b017525a422f9ddb1385b /test/CodeGenCXX/mangle-local-anonymous-unions.cpp
parent30d791273d07fac9c0c1641a0731191bca6e8606 (diff)
Diffstat (limited to 'test/CodeGenCXX/mangle-local-anonymous-unions.cpp')
-rw-r--r--test/CodeGenCXX/mangle-local-anonymous-unions.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/test/CodeGenCXX/mangle-local-anonymous-unions.cpp b/test/CodeGenCXX/mangle-local-anonymous-unions.cpp
new file mode 100644
index 000000000000..9187c1a5a27a
--- /dev/null
+++ b/test/CodeGenCXX/mangle-local-anonymous-unions.cpp
@@ -0,0 +1,42 @@
+// RUN: %clang_cc1 %s -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s
+
+// CHECK-DAG: @_ZZ2f0vE1a
+// CHECK-DAG: @_ZZ2f0vE1c
+// CHECK-DAG: @_ZZ2f0vE1e_0
+inline int f0() {
+ static union {
+ int a;
+ long int b;
+ };
+
+ static union {
+ int c;
+ double d;
+ };
+
+ if (0) {
+ static union {
+ int e;
+ int f;
+ };
+ }
+ static union {
+ int e;
+ int f;
+ };
+
+ return a+c;
+}
+
+inline void nop() {
+ static union {
+ union {
+ };
+ };
+}
+
+int f1 (int a, int c) {
+ nop();
+ return a+c+f0();
+}
+