summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenObjC/strong-in-c-struct.m
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/CodeGenObjC/strong-in-c-struct.m')
-rw-r--r--clang/test/CodeGenObjC/strong-in-c-struct.m18
1 files changed, 18 insertions, 0 deletions
diff --git a/clang/test/CodeGenObjC/strong-in-c-struct.m b/clang/test/CodeGenObjC/strong-in-c-struct.m
index 6310943d2ef..393a328ca8d 100644
--- a/clang/test/CodeGenObjC/strong-in-c-struct.m
+++ b/clang/test/CodeGenObjC/strong-in-c-struct.m
@@ -70,6 +70,11 @@ typedef struct {
volatile char i6;
} Bitfield1;
+typedef struct {
+ id x;
+ volatile int a[16];
+} VolatileArray ;
+
#endif
#ifdef USESTRUCT
@@ -540,4 +545,17 @@ void test_strong_in_union() {
U t;
}
+// CHECK: define void @test_copy_constructor_VolatileArray(
+// CHECK: call void @__copy_constructor_8_8_s0_AB8s4n16_tv64w32_AE(
+
+// CHECK: define linkonce_odr hidden void @__copy_constructor_8_8_s0_AB8s4n16_tv64w32_AE(
+// CHECK: %[[V12:.*]] = bitcast i8** %{{.*}} to i32*
+// CHECK: %[[V13:.*]] = bitcast i8** %{{.*}} to i32*
+// CHECK: %[[V14:.*]] = load volatile i32, i32* %[[V13]], align 4
+// CHECK: store volatile i32 %[[V14]], i32* %[[V12]], align 4
+
+void test_copy_constructor_VolatileArray(VolatileArray *a) {
+ VolatileArray t = *a;
+}
+
#endif /* USESTRUCT */
OpenPOWER on IntegriCloud