| // RUN: %clang_cc1 -fblocks -fsyntax-only -verify -Wno-objc-root-class %s |
| // RUN: %clang_cc1 -x objective-c++ -fblocks -fsyntax-only -verify -Wno-objc-root-class %s |
| // RUN: %clang_cc1 -fblocks -fobjc-arc -fsyntax-only -verify -Wno-objc-root-class %s |
| // RUN: %clang_cc1 -x objective-c++ -fblocks -fobjc-arc -fsyntax-only -verify -Wno-objc-root-class %s |
| // expected-no-diagnostics |
| // rdar://17259812 |
| |
| typedef void (^BT) (); |
| |
| BT foo() __attribute__((ns_returns_retained)); |
| |
| @interface I |
| BT foo() __attribute__((ns_returns_retained)); |
| - (BT) Meth __attribute__((ns_returns_retained)); |
| + (BT) ClsMeth __attribute__((ns_returns_retained)); |
| @end |
| |
| @implementation I |
| BT foo() __attribute__((ns_returns_retained)) {return ^{}; } |
| - (BT) Meth {return ^{}; } |
| + (BT) ClsMeth {return ^{}; } |
| @end |