1 | // RUN: %clang_cc1 -fsyntax-only -Wcustom-atomic-properties -verify -Wno-objc-root-class %s |
2 | |
3 | @interface Foo |
4 | @property (assign) Foo *myProp; // expected-note {{property declared here}} expected-note {{property declared here}} |
5 | @end |
6 | |
7 | @implementation Foo |
8 | -(Foo*)myProp {return 0;} // expected-warning {{atomic by default property 'myProp' has a user defined getter (property should be marked 'atomic' if this is intended)}} |
9 | -(void)setMyProp:(Foo*)e {} // expected-warning {{atomic by default property 'myProp' has a user defined setter (property should be marked 'atomic' if this is intended)}} |
10 | @end |
11 | |
12 | @interface Foo2 { |
13 | Foo *myProp; |
14 | } |
15 | @property (assign) Foo *myProp; |
16 | @end |
17 | |
18 | @implementation Foo2 |
19 | @synthesize myProp; // no warnings. |
20 | @end |
21 | |