// 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
