1/* { dg-do compile } */ 2 3#import "../objc-obj-c++-shared/TestsuiteObject.h" 4 5@interface obj : TestsuiteObject 6{ 7@public 8 int v1; 9@package /* { dg-warning ".@package. presently has the same effect as .@public." } */ 10 int v2; 11@protected 12 int v3; 13@private 14 int v4; 15} 16- (int) value; 17- (void) setValue: (int)number; 18@end 19 20@implementation obj : Object 21 22- (int) value { return v1; } 23- (void) setValue: (int)number { v1 = number; } 24 25@end 26 27void foo (void) 28{ 29 obj *a; 30 31 [a setValue:2]; 32 a->v2 = 1; 33 a->v3 = [a value] - a->v2; /* { dg-warning ".v3. is @protected" } */ 34 a->v4 = a->v3 - 1; /* { dg-warning ".v4. is @private" } */ 35 /* { dg-warning ".v3. is @protected" } */ 36} 37