* gcc.target/i386/mpx/hard-reg-1-nov.c (mpx_test): Use "esp"
[official-gcc.git] / gcc / testsuite / objc.dg / private-1.m
blob7540fc5800c57da269a811f45ba775f2d4d5dffe
1 /* Test errors for accessing @private and @protected variables.  */
2 /* Author: Nicola Pero <nicola@brainstorm.co.uk>.  */
3 /* { dg-do compile } */
4 #include <objc/objc.h>
6 @interface MySuperClass
8 @private
9   int private;
11 @protected
12   int protected;
14 @public
15   int public;
17 - (void) test;
18 @end
20 @implementation MySuperClass
21 - (void) test
23   private = 12;   /* Ok  */
24   protected = 12; /* Ok  */
25   public = 12;    /* Ok  */
27 @end
30 @interface MyClass : MySuperClass 
31 @end
33 @implementation MyClass
34 - (void) test
36   /* Private variables simply don't exist in the subclass.  */
37   private = 12;  /* { dg-error "instance variable" } */
38   /* { dg-message "function it appears in" "" { target *-*-* } .-1 } */
40   protected = 12; /* Ok  */
41   public = 12;    /* Ok  */
43 @end
45 int main (void)
47   MyClass *m = nil;
48   
49   if (m != nil)
50     {
51       int access;
53       access = m->private;   /* { dg-warning "is @private" }  */
54       access = m->protected; /* { dg-warning "is @protected" }  */
55       access = m->public;    /* Ok  */
56     }
58   return 0;