diff options
| author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2012-03-05 08:46:24 +0000 |
|---|---|---|
| committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2012-03-05 08:46:24 +0000 |
| commit | afdc66f4fa8f74a8ce4811d7148d90a00d1d770f (patch) | |
| tree | f7f1e19cef4bd1f80039bc89b9f706bac992e35d /clang/test | |
| parent | d3e7057afc3f6211b838e1b4d53a4ee9e799283f (diff) | |
| download | bcm5719-llvm-afdc66f4fa8f74a8ce4811d7148d90a00d1d770f.tar.gz bcm5719-llvm-afdc66f4fa8f74a8ce4811d7148d90a00d1d770f.zip | |
[arcmt]
-Make sure we don't change to '__weak' a __block variable used as output.
-Make sure we don't apply __weak twice.
Fixes rdar://10520757&10521362
llvm-svn: 152020
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/ARCMT/rewrite-block-var.m | 20 | ||||
| -rw-r--r-- | clang/test/ARCMT/rewrite-block-var.m.result | 20 |
2 files changed, 40 insertions, 0 deletions
diff --git a/clang/test/ARCMT/rewrite-block-var.m b/clang/test/ARCMT/rewrite-block-var.m index e6a8fb72e00..538f16c2557 100644 --- a/clang/test/ARCMT/rewrite-block-var.m +++ b/clang/test/ARCMT/rewrite-block-var.m @@ -23,3 +23,23 @@ void test2(Foo *p) { x = [p something]; }); } + +void test3(Foo *p) { + __block Foo *x; // __block used as output variable. + bar(^{ + [x something]; + }); + bar(^{ + x = 0; + }); +} + +void test4(Foo *p) { + __block Foo *x = p; // __block used just to break cycle. + bar(^{ + [x something]; + }); + bar(^{ + [x something]; + }); +} diff --git a/clang/test/ARCMT/rewrite-block-var.m.result b/clang/test/ARCMT/rewrite-block-var.m.result index 27c81bd5882..a9d0b0f7fad 100644 --- a/clang/test/ARCMT/rewrite-block-var.m.result +++ b/clang/test/ARCMT/rewrite-block-var.m.result @@ -23,3 +23,23 @@ void test2(Foo *p) { x = [p something]; }); } + +void test3(Foo *p) { + __block Foo *x; // __block used as output variable. + bar(^{ + [x something]; + }); + bar(^{ + x = 0; + }); +} + +void test4(Foo *p) { + __weak Foo *x = p; // __block used just to break cycle. + bar(^{ + [x something]; + }); + bar(^{ + [x something]; + }); +} |

