// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s @interface Test { int x; } -(void) setX: (int) d; @end extern struct foo x; @implementation Test -(void) setX: (int) n { x = n; } @end @interface Ivar - (float*)method; @end @interface A { A *Ivar; } - (int*)method; @end @implementation A - (int*)method { int *ip = [Ivar method]; // expected-warning{{incompatible pointer types initializing 'int *' with an expression of type 'float *'}} // Note that there is no warning in Objective-C++ return 0; } @end @interface TwoIvars { int a; int b; } @end @implementation TwoIvars + (int)classMethod { return a + b; // expected-error{{instance variable 'a' accessed in class method}} \ // expected-error{{instance variable 'b' accessed in class method}} } @end // rdar://10309454 @interface Radar10309454 { int IVAR; // expected-note 4 {{previous definition is here}} } @end @interface Radar10309454() { int IVAR; // expected-error {{instance variable is already declared}} int PIVAR; // expected-note {{previous definition is here}} } @end @interface Radar10309454() { int IVAR; // expected-error {{instance variable is already declared}} } @end @interface Radar10309454() { int IVAR; // expected-error {{instance variable is already declared}} int PIVAR; // expected-error {{instance variable is already declared}} } @end @implementation Radar10309454 { int IVAR; // expected-error {{instance variable is already declared}} } @end