|  | // RUN: %clang_cc1 -fsyntax-only -fobjc-arc -fblocks -Wno-objc-root-class -verify %s | 
|  |  | 
|  | // [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}} | 
|  | } | 
|  |  | 
|  | @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 |