Rebase.
[official-gcc.git] / gcc / testsuite / objc.dg / ivar-scope-3.m
blob0bf7aa1a114ad2ab53d7f56962839162115fbc80
1 /* Test instance variable scope.  */
2 /* Author: Dimitris Papavasiliou <dpapavas@gmail.com>.  */
3 /* { dg-do run } */
4 /* { dg-additional-options "-Wno-shadow-ivar" } */
5 #include "../objc-obj-c++-shared/TestsuiteObject.m"
6 #include <objc/objc.h>
8 extern void abort(void);
10 int someivar = 1;
12 @interface MyClass: TestsuiteObject
14   int someivar;
16 - (int) get;
17 - (int) getHidden;
18 @end
20 @implementation MyClass
21 - init
23   someivar = 2;
25   return self;
28 - (int) get
30   return someivar;
33 - (int) getHidden
35   int someivar = 3;
36   
37   return someivar;
39 @end
41 int main(void)
43   MyClass *object;
45   object = [[MyClass alloc] init];
47   /* Check whether the instance variable hides the global variable. */
48   
49   if ([object get] != 2) {
50     abort();
51   }
53   /* Check whether the local variable hides the instance variable. */
54   
55   if ([object getHidden] != 3) {
56     abort();
57   }
59   return 0;