aboutsummaryrefslogtreecommitdiffstats
path: root/test/FrontendObjC
diff options
context:
space:
mode:
authorDale Johannesen <dalej@apple.com>2009-01-26 23:22:19 +0000
committerDale Johannesen <dalej@apple.com>2009-01-26 23:22:19 +0000
commitfd8c4d9561cb6be121b557f2afde92f9632abca3 (patch)
tree4a1b705d0b261eb37e4fa9de6cff6227a802cc69 /test/FrontendObjC
parentc899a120c54af1c58345e8870ba82078c75d3924 (diff)
downloadexternal_llvm-fd8c4d9561cb6be121b557f2afde92f9632abca3.zip
external_llvm-fd8c4d9561cb6be121b557f2afde92f9632abca3.tar.gz
external_llvm-fd8c4d9561cb6be121b557f2afde92f9632abca3.tar.bz2
Testcase for 6522054.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63067 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/FrontendObjC')
-rw-r--r--test/FrontendObjC/2009-01-26-WriteBarrier-2.m14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/FrontendObjC/2009-01-26-WriteBarrier-2.m b/test/FrontendObjC/2009-01-26-WriteBarrier-2.m
new file mode 100644
index 0000000..32833a8
--- /dev/null
+++ b/test/FrontendObjC/2009-01-26-WriteBarrier-2.m
@@ -0,0 +1,14 @@
+// RUN: %llvmgcc -x objective-c -S %s -fobjc-gc -o - | grep objc_assign_strongCast
+// rdar://5541393
+
+typedef struct {
+ void (^ivarBlock)(void);
+} StructWithBlock_t;
+
+int main(char *argc, char *argv[]) {
+ StructWithBlock_t *swbp = (StructWithBlock_t *)malloc(sizeof(StructWithBlock_t*));
+ __block int i = 10;
+ // assigning a Block into an struct slot should elicit a write-barrier under GC
+ swbp->ivarBlock = ^ { ++i; };
+ return 0;
+}