summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2010-02-16 16:55:10 +0000
committerTed Kremenek <kremenek@apple.com>2010-02-16 16:55:10 +0000
commit3eac2454dccd767fb0a6ecadf824dce498b4d28e (patch)
tree8e9259d894e34eb87425b4197815abe4339162b6
parentbc91b44a23d5f026f3042d9008e0b9d576f6ad1f (diff)
downloadbcm5719-llvm-3eac2454dccd767fb0a6ecadf824dce498b4d28e.tar.gz
bcm5719-llvm-3eac2454dccd767fb0a6ecadf824dce498b4d28e.zip
Add test case showing that a recursive block that captures a block pointer that
isn't marked '__block' is bad. llvm-svn: 96357
-rw-r--r--clang/test/Analysis/blocks.m5
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/test/Analysis/blocks.m b/clang/test/Analysis/blocks.m
index e8e96a22cf9..b05b198c548 100644
--- a/clang/test/Analysis/blocks.m
+++ b/clang/test/Analysis/blocks.m
@@ -83,3 +83,8 @@ void test2_b() {
// 'x' is bound at block creation.
^{ y = x + 1; }(); // no-warning
}
+
+void test2_c() {
+ typedef void (^myblock)(void);
+ myblock f = ^() { f(); }; // expected-warning{{Variable 'f' is captured by block with a garbage value}}
+} \ No newline at end of file
OpenPOWER on IntegriCloud