[PowerPC] Collect some CallLowering arguments into a struct. [NFC]
[llvm-project.git] / clang / test / SemaObjC / arc-invalid.m
blob07b6480c1f9bec904b1210817f29ead898cd93b6
1 // RUN: %clang_cc1 -fsyntax-only -fobjc-arc -fblocks -Wno-objc-root-class -verify %s
3 // rdar://problem/10982793
4 // [p foo] in ARC creates a cleanup.
5 // The plus is invalid and causes the cleanup to go unbound.
6 // Don't crash.
7 @interface A
8 - (id) foo;
9 @end
10 void takeBlock(void (^)(void));
11 void test0(id p) {
12   takeBlock(^{ [p foo] + p; }); // expected-error {{invalid operands to binary expression}}
15 void test1(void) {
16   __autoreleasing id p; // expected-note {{'p' declared here}}
17   takeBlock(^{ (void) p; }); // expected-error {{cannot capture __autoreleasing variable in a block}}
20 // rdar://17024681
21 @class WebFrame;
22 @interface WebView  // expected-note {{previous definition is here}}
23 - (WebFrame *)mainFrame;
24 @end
26 @interface WebView  // expected-error {{duplicate interface definition for class 'WebView'}}
27 @property (nonatomic, readonly, strong) WebFrame *mainFrame;
28 @end
30 @interface UIWebDocumentView
31 - (WebView *)webView;
32 @end
34 @interface UIWebBrowserView : UIWebDocumentView
35 @end
37 @interface StoreBanner @end
39 @implementation StoreBanner
40 + (void)readMetaTagContentForUIWebBrowserView:(UIWebBrowserView *)browserView
42   [[browserView webView] mainFrame];
44 @end