[clang] Handle __declspec() attributes in using
[llvm-project.git] / clang / test / SemaObjC / unimplemented-protocol-prop.m
blob270d879a7c687ad2544450357ee8f9628c9553ea
1 // RUN: %clang_cc1  -fsyntax-only -verify -Wno-objc-root-class -disable-objc-default-synthesize-properties %s
3 @protocol PROTOCOL0
4 @required
5 @property float MyProperty0; // expected-note 2 {{property declared}}
6 @end
8 @protocol PROTOCOL<PROTOCOL0>
9 @required
10 @property float MyProperty; // expected-note 2 {{property declared}}
11 @optional
12 @property float OptMyProperty;
13 @end
15 @interface I <PROTOCOL>
16 @end
18 @implementation I @end // expected-warning {{property 'MyProperty0' requires method 'MyProperty0' to be defined}} \
19                        // expected-warning {{property 'MyProperty0' requires method 'setMyProperty0:' to be defined}}\
20                        // expected-warning {{property 'MyProperty' requires method 'MyProperty' to be defined}} \
21                        // expected-warning {{property 'MyProperty' requires method 'setMyProperty:' to be defined}}
23 // rdar://10120691
24 // property is implemented in super class. No warning
26 @protocol PROTOCOL1
27 @property int MyProp;
28 @end
30 @interface superclass
31 @property int MyProp;
32 @end
34 @interface childclass : superclass <PROTOCOL1>
35 @end
37 @implementation childclass
38 @end