diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/objc/execute/accessing_ivars.m')
-rw-r--r-- | gcc-4.9/gcc/testsuite/objc/execute/accessing_ivars.m | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/objc/execute/accessing_ivars.m b/gcc-4.9/gcc/testsuite/objc/execute/accessing_ivars.m new file mode 100644 index 000000000..964c378b4 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/objc/execute/accessing_ivars.m @@ -0,0 +1,55 @@ +/* Contributed by Nicola Pero - Thu Mar 8 16:27:46 CET 2001 */ +#include <stdlib.h> +#include "../../objc-obj-c++-shared/TestsuiteObject.m" + +/* Test that by using -> we can access ivars of other objects of the same + class */ + +@interface TestClass : TestsuiteObject +{ + int value; +} +- (int) value; +- (void) setValue: (int)number; +- (void) takeValueFrom: (TestClass *)object; +@end + +@implementation TestClass : TestsuiteObject +{ + int value; +} +- (int) value +{ + return value; +} +- (void) setValue: (int)number +{ + value = number; +} +- (void) takeValueFrom: (TestClass *)object +{ + value = object->value; +} +@end + +int main (void) +{ + TestClass *a; + TestClass *b; + + a = [TestClass new]; + [a setValue: 10]; + + b = [TestClass new]; + [b setValue: -10]; + + [b takeValueFrom: a]; + + if ([b value] != [a value]) + { + abort (); + } + + return 0; +} + |