aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2009-09-16 23:38:26 +0000
committerFariborz Jahanian <fjahanian@apple.com>2009-09-16 23:38:26 +0000
commitf177a8df322f463fd382fb1588a27308fa728d34 (patch)
tree7980bf6b9b81ded9502a94b26604aefb84c15c27
parentb9e28fa9afb4d39b7031f347a25e6746b935eebf (diff)
Additional tests for write-bariers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82092 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/CodeGenObjC/objc-assign-ivar.m11
1 files changed, 9 insertions, 2 deletions
diff --git a/test/CodeGenObjC/objc-assign-ivar.m b/test/CodeGenObjC/objc-assign-ivar.m
index f78b2eea6b..002b5c156e 100644
--- a/test/CodeGenObjC/objc-assign-ivar.m
+++ b/test/CodeGenObjC/objc-assign-ivar.m
@@ -1,5 +1,5 @@
// RUN: clang-cc -fnext-runtime -fobjc-gc -fobjc-newgc-api -emit-llvm -o %t %s &&
-// RUN: grep -F '@objc_assign_ivar' %t | count 11 &&
+// RUN: grep -F '@objc_assign_ivar' %t | count 14 &&
// RUN: true
typedef struct {
@@ -22,6 +22,9 @@ typedef struct {
id nsobject;
NSString *stringArray[10];
struct_with_ids_t inner;
+
+ Foo *obj[20];
+ short idx[5];
}
@end
@@ -42,6 +45,10 @@ void testIvars() {
ASSIGNTEST(foo->inner.elementArray[0], IvarAssigns); // objc_assign_ivar
ASSIGNTEST(foo->inner.cfElement, IvarAssigns); // objc_assign_ivar
ASSIGNTEST(foo->inner.cfElementArray[0], IvarAssigns); // objc_assign_ivar
-
+ int counter=1;
+ ASSIGNTEST(foo->obj[5], IvarAssigns); // objc_assign_ivar
+ ASSIGNTEST(foo->obj[++counter], IvarAssigns); // objc_assign_ivar
+ foo->idx[++counter] = 15;
+ ASSIGNTEST(foo->obj[foo->idx[2]], IvarAssigns); // objc_assign_ivar
}