| // RUN: %clang_cc1 -ast-print %s -o - | FileCheck %s | 
 |  | 
 | @interface NSObject @end | 
 |  | 
 | @protocol P | 
 | - (void)MethP __attribute__((availability(macosx,introduced=10.1.0,deprecated=10.2))); | 
 | @end | 
 |  | 
 | @interface I : NSObject <P> | 
 | - (void)MethI __attribute__((availability(macosx,introduced=10.1.0,deprecated=10.2))); | 
 | @end | 
 |  | 
 | @interface I(CAT) | 
 | - (void)MethCAT __attribute__((availability(macosx,introduced=10_1_0,deprecated=10_2))); | 
 | @end | 
 |  | 
 | @implementation I | 
 | - (void)MethP __attribute__((availability(macosx,introduced=10.1.0,deprecated=10.2))) {} | 
 | - (void)MethI __attribute__((availability(macosx,introduced=10.1.0,deprecated=10.2))) {} | 
 |  | 
 | - (void)methodWithArg:(int)x andAnotherOne:(int)y { } | 
 | @end | 
 |  | 
 | __attribute__((availability(macosx,introduced=10.1.0,deprecated=10.2))) | 
 | @interface InterfaceWithAttribute | 
 | @end | 
 |  | 
 | // CHECK: @protocol P | 
 | // CHECK: - (void)MethP __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))); | 
 | // CHECK: @end | 
 |  | 
 | // CHECK: @interface I : NSObject<P>  | 
 | // CHECK: - (void)MethI __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))); | 
 | // CHECK: @end | 
 |  | 
 | // CHECK: @interface I(CAT) | 
 | // CHECK: - (void)MethCAT __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))); | 
 | // CHECK: @end | 
 |  | 
 | // CHECK: @implementation I | 
 | // CHECK: - (void)MethP __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))) { | 
 | // CHECK: } | 
 |  | 
 | // CHECK: - (void)MethI __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))) { | 
 | // CHECK: } | 
 |  | 
 | // CHECK: - (void)methodWithArg:(int)x andAnotherOne:(int)y { | 
 | // CHECK: } | 
 |  | 
 | // CHECK: @end | 
 |  | 
 | // CHECK: __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))) | 
 | // CHECK: @interface InterfaceWithAttribute | 
 | // CHECK: @end | 
 |  | 
 | @class C1; | 
 | struct __attribute__((objc_bridge_related(C1,,))) S1; | 
 |  | 
 | // CHECK: @class C1; | 
 | // CHECK: struct __attribute__((objc_bridge_related(C1, , ))) S1; | 
 |  | 
 | @interface ImplicitPropertyWithSetterOnly | 
 |  | 
 | - (void)setX:(int)x; | 
 |  | 
 | @end | 
 |  | 
 | void printImplicitPropertyWithSetterOnly(ImplicitPropertyWithSetterOnly *x) { | 
 |   x.x = 313; // CHECK: x.x = 313; | 
 | } |