| // RUN: %clang_cc1 -fsyntax-only -fobjc-arc -fblocks -Wno-objc-root-class -verify %s |
| |
| // rdar://problem/10982793 |
| // [p foo] in ARC creates a cleanup. |
| // The plus is invalid and causes the cleanup to go unbound. |
| // Don't crash. |
| @interface A |
| - (id) foo; |
| @end |
| void takeBlock(void (^)(void)); |
| void test0(id p) { |
| takeBlock(^{ [p foo] + p; }); // expected-error {{invalid operands to binary expression}} |
| } |
| |
| void test1(void) { |
| __autoreleasing id p; // expected-note {{'p' declared here}} |
| takeBlock(^{ (void) p; }); // expected-error {{cannot capture __autoreleasing variable in a block}} |
| } |
| |
| // rdar://17024681 |
| @class WebFrame; |
| @interface WebView // expected-note {{previous definition is here}} |
| - (WebFrame *)mainFrame; |
| @end |
| |
| @interface WebView // expected-error {{duplicate interface definition for class 'WebView'}} |
| @property (nonatomic, readonly, strong) WebFrame *mainFrame; |
| @end |
| |
| @interface UIWebDocumentView |
| - (WebView *)webView; |
| @end |
| |
| @interface UIWebBrowserView : UIWebDocumentView |
| @end |
| |
| @interface StoreBanner @end |
| |
| @implementation StoreBanner |
| + (void)readMetaTagContentForUIWebBrowserView:(UIWebBrowserView *)browserView |
| { |
| [[browserView webView] mainFrame]; |
| } |
| @end |