/* APPLE LOCAL file radar 3803157 */
/* Test implementaion of attributes on methods. */
/* { dg-do compile } */

@interface INTF
- (int) foo1: (int)arg1 __attribute__((deprecated));

- (int) foo: (int)arg1;	

- (int) foo2: (int)arg1 __attribute__((deprecated)) __attribute__((unavailable)); /* { dg-error "" } */
@end

@implementation INTF
- (int) foo: (int)arg1  __attribute__((deprecated)){
		/* { dg-warning "method attribute may be specified" "" { target *-*-* } 14 } */
	return 10;
}
- (int) foo1: (int)arg1 {
	return 10;
}
- (int) foo2: (int)arg1 __attribute__((deprecated)) {
		/* { dg-warning "method attribute may be specified" "" { target *-*-* } 21 } */
	return 10;
}
@end

int main()
{
	INTF *p;
	[p foo1:2];	/* { dg-warning "\\'foo1:\\' is deprecated" } */
	[p foo2:2];	/* { dg-error "\\'foo2:\\' is unavailable" } */
	return [p foo:1];
}

