1// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s 2 3@interface Test { 4 int x; 5} 6 7-(void) setX: (int) d; 8@end 9 10extern struct foo x; 11 12@implementation Test 13 14-(void) setX: (int) n { 15 x = n; 16} 17 18@end 19 20@interface Ivar 21- (float*)method; 22@end 23 24@interface A { 25 A *Ivar; 26} 27- (int*)method; 28@end 29 30@implementation A 31- (int*)method { 32 int *ip = [Ivar method]; // expected-warning{{incompatible pointer types initializing 'int *' with an expression of type 'float *'}} 33 // Note that there is no warning in Objective-C++ 34 return 0; 35} 36@end 37 38@interface TwoIvars { 39 int a; 40 int b; 41} 42@end 43 44@implementation TwoIvars 45+ (int)classMethod { 46 return a + b; // expected-error{{instance variable 'a' accessed in class method}} \ 47 // expected-error{{instance variable 'b' accessed in class method}} 48} 49@end 50 51// rdar://10309454 52@interface Radar10309454 53{ 54 int IVAR; // expected-note 4 {{previous definition is here}} 55} 56@end 57 58@interface Radar10309454() 59{ 60 int IVAR; // expected-error {{instance variable is already declared}} 61 int PIVAR; // expected-note {{previous definition is here}} 62} 63@end 64 65@interface Radar10309454() 66{ 67 int IVAR; // expected-error {{instance variable is already declared}} 68} 69@end 70 71@interface Radar10309454() 72{ 73 int IVAR; // expected-error {{instance variable is already declared}} 74 int PIVAR; // expected-error {{instance variable is already declared}} 75} 76@end 77 78@implementation Radar10309454 79{ 80 int IVAR; // expected-error {{instance variable is already declared}} 81} 82@end 83