aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGenObjC/block-over-align.m
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGenObjC/block-over-align.m')
-rw-r--r--test/CodeGenObjC/block-over-align.m25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/CodeGenObjC/block-over-align.m b/test/CodeGenObjC/block-over-align.m
new file mode 100644
index 000000000000..2747040ac031
--- /dev/null
+++ b/test/CodeGenObjC/block-over-align.m
@@ -0,0 +1,25 @@
+// RUN: %clang_cc1 -fblocks -triple x86_64-apple-darwin -emit-llvm -o /dev/null %s
+// rdar://17878679
+
+typedef struct
+{
+ int i;
+} GAXBackboardState __attribute__ ((aligned(32))); // minimum alignment is 32-byte boundary
+
+@interface GAXSpringboard @end
+
+@implementation GAXSpringboard
+{
+ GAXBackboardState _reflectedBackboardState;
+}
+
+- (void) MyMethod
+{
+ GAXBackboardState newBackboardState;
+ ^{
+ _reflectedBackboardState = newBackboardState;
+ return newBackboardState.i;
+ }();
+}
+@end
+