| // RUN: %clang_cc1 -x objective-c++ -fblocks -triple x86_64-apple-darwin -fobjc-runtime=macosx-fragile-10.5 %s -verify -std=c++11 -emit-llvm -o %t |
| void takeBlock(void (^block)()); |
| f(^(A* a) { return 0; }); |
| int (^bl)(B* b) = ^(A* a) { return 0; }; |
| void foo(id <NSObject>(^objectCreationBlock)(void)) { |
| return bar(objectCreationBlock); |
| struct Nested { Nested *ptr = this; }; |
| // Regression test for PR13314 |
| ^() { // expected-warning {{expression result unused}} |
| [=]() { // expected-warning {{expression result unused}} |
| class CaptureThisAndAnotherPointer { |
| takeBlock(^{ useValues(ptr, this); }); |
| // rdar://problem/23713871 |
| // Check that we don't crash when using BLOCK_LAYOUT_STRONG. |
| #pragma clang assume_nonnull begin |
| #pragma clang assume_nonnull end |
| struct Wrapper1 { NSUUID *Ref; }; |
| struct Wrapper2 { Wrapper1 W1; }; |
| - (void) captureStrongRef { |