Home | History | Annotate | Download | only in SemaObjC
      1 // RUN: %clang_cc1 %s -fsyntax-only -verify
      2 
      3 @interface Test {
      4    int x;
      5 }
      6 
      7 -(void) setX: (int) d;
      8 @end
      9 
     10 extern 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{{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