aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGenCXX/anonymous-union-member-initializer.cpp
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2010-05-20 23:23:51 +0000
committerJohn McCall <rjmccall@apple.com>2010-05-20 23:23:51 +0000
commitf1860e5c381a2710fcebe6d55d799c6b25c21041 (patch)
tree10e4fb232342b151e27bd87c116dd29edb8cc74a /test/CodeGenCXX/anonymous-union-member-initializer.cpp
parent4186ff4fc4102f63b7485c2bf89155d3b0899d32 (diff)
Be sure to apply initializers to members of anonymous structs and unions
recursively, e.g. so that members of anonymous unions inside anonymous structs still get initialized. Also generate default constructor calls for anonymous struct members when necessary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104292 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGenCXX/anonymous-union-member-initializer.cpp')
-rw-r--r--test/CodeGenCXX/anonymous-union-member-initializer.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/CodeGenCXX/anonymous-union-member-initializer.cpp b/test/CodeGenCXX/anonymous-union-member-initializer.cpp
index adb395021e..bd816a4a44 100644
--- a/test/CodeGenCXX/anonymous-union-member-initializer.cpp
+++ b/test/CodeGenCXX/anonymous-union-member-initializer.cpp
@@ -34,3 +34,21 @@ namespace PR7021 {
// CHECK: ret void
}
}
+
+namespace test2 {
+ struct A {
+ struct {
+ union {
+ int b;
+ };
+ };
+
+ A();
+ };
+
+ A::A() : b(10) { }
+ // CHECK: define void @_ZN5test21AC2Ev(
+ // CHECK-NOT: }
+ // CHECK: store i32 10
+ // CHECK: }
+}