// 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 // PR5984 // rdar://14037151 @interface Radar14037151 { int myStatus; } - (int) test; @end @implementation Radar14037151 - (int) test { myStatus = 1; // works __typeof(myStatus) __in; // works. union U { __typeof(myStatus) __in; // fails. }; struct S { __typeof(myStatus) __in; // fails. struct S1 { // expected-warning {{declaration does not declare anything}} __typeof(myStatus) __in; // fails. struct S { // expected-warning {{declaration does not declare anything}} __typeof(myStatus) __in; // fails. }; }; }; return 0; } @end // rdar://14278560 @class NSString, NSData, NSNumber; @interface NSObject { Class isa; } @end @interface Foo { int a; NSString* b; NSData* c; } @end @interface Bar : Foo @end @interface Bar () { NSString *q_strong; NSNumber *r_strong; int d; // expected-note {{previous definition is here}} NSString *e_strong; // expected-note {{previous definition is here}} NSData *f_weak; // expected-note {{previous definition is here}} int g; // expected-note 2 {{previous definition is here}} } @end @interface Bar () { int g; // expected-note {{previous definition is here}} \ // expected-error {{instance variable is already declared}} } @end @implementation Bar { int d; // expected-error {{instance variable is already declared}} NSString *e_strong; // expected-error {{instance variable is already declared}} NSData *f_weak; // expected-error {{instance variable is already declared}} NSData *g; // expected-error 2 {{instance variable is already declared}} } @end