summaryrefslogtreecommitdiffstats
path: root/clang/test/FixIt/fixit-recursive-block.c
diff options
context:
space:
mode:
authorAkira Hatanaka <ahatanaka@apple.com>2019-04-23 23:52:02 +0000
committerAkira Hatanaka <ahatanaka@apple.com>2019-04-23 23:52:02 +0000
commit53796d9439018b97a0e6f35af0ba83843a7270e7 (patch)
treee61a67820c2f31e554c3b4708f3058ad1823a30c /clang/test/FixIt/fixit-recursive-block.c
parenteeab4518e1d718c2aa09fbe116cd060dac306d56 (diff)
downloadbcm5719-llvm-53796d9439018b97a0e6f35af0ba83843a7270e7.tar.gz
bcm5719-llvm-53796d9439018b97a0e6f35af0ba83843a7270e7.zip
Improve -Wuninitialized warning under ARC for block variables that are
recursively captured. Under ARC, a block variable is zero-initialized when it is recursively captured by the block literal initializer. rdar://problem/11022762 llvm-svn: 359049
Diffstat (limited to 'clang/test/FixIt/fixit-recursive-block.c')
-rw-r--r--clang/test/FixIt/fixit-recursive-block.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/clang/test/FixIt/fixit-recursive-block.c b/clang/test/FixIt/fixit-recursive-block.c
index 3793f825f6e..fec5b8028f9 100644
--- a/clang/test/FixIt/fixit-recursive-block.c
+++ b/clang/test/FixIt/fixit-recursive-block.c
@@ -1,12 +1,18 @@
// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -Wuninitialized -fblocks -fdiagnostics-parseable-fixits %s 2>&1 | FileCheck %s
// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -Wuninitialized -fblocks -verify %s
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -Wuninitialized -fblocks -x objective-c -fobjc-arc -DARC -verify %s
// rdar://10817031
int main() {
- void (^arc_fail)() = ^() { // expected-warning {{block pointer variable 'arc_fail' is uninitialized when captured by block}} \
- // expected-note {{did you mean to use __block 'arc_fail'}}
+ void (^arc_fail)() = ^() {
+#ifdef ARC
+// expected-warning@-2 {{block pointer variable 'arc_fail' is null when captured by block}}
+#else
+// expected-warning@-4 {{block pointer variable 'arc_fail' is uninitialized when captured by block}}
+#endif
+// expected-note@-6 {{did you mean to use __block 'arc_fail'}}
arc_fail(); // BOOM
};
}
-// CHECK: {7:12-7:12}:"__block "
+// CHECK: {8:12-8:12}:"__block "
OpenPOWER on IntegriCloud