__attribute__((os_consumes_this))staticvoidrejected_on_static();// expected-warning{{'os_consumes_this' attribute only applies to non-static member functions}}
__attribute__((os_returns_retained))Sret_retained_value(){// expected-warning{{'os_returns_retained' attribute only applies to functions that return a pointer}}
__attribute__((os_returns_not_retained))Sret_not_retained_value(){// expected-warning{{'os_returns_not_retained' attribute only applies to functions that return a pointer}}
struct__attribute__((os_returns_retained))NoRetainAttrOnStruct{};// expected-warning{{'os_returns_retained' attribute only applies to functions, Objective-C methods, Objective-C properties, and parameters}}
struct__attribute__((os_returns_not_retained))NoNotRetainedAttrOnStruct{};// expected-warning{{'os_returns_not_retained' attribute only applies to functions, Objective-C methods, Objective-C properties, and parameters}}
__attribute__((os_consumes_this))voidno_consumes_this_on_function(){}// expected-warning{{'os_consumes_this' attribute only applies to non-static member functions}}
boolwrite_into_out_parameter_on_nonzero_invalid(__attribute__((os_returns_retained_on_non_zero))S*out){}// expected-warning{{'os_returns_retained_on_non_zero' attribute only applies to pointer/reference-to-OSObject-pointer parameters}}
boolwrite_into_out_parameter_on_zero_invalid(__attribute__((os_returns_retained_on_zero))S*out){}// expected-warning{{'os_returns_retained_on_zero' attribute only applies to pointer/reference-to-OSObject-pointer parameters}}
voidwrite_into_out_parameter_invalid(__attribute__((os_returns_retained))S*out){}// expected-warning{{'os_returns_retained' attribute only applies to pointer/reference-to-OSObject-pointer parameters}}
voidwrite_into_not_retainedout_parameter_invalid(__attribute__((os_returns_not_retained))S*out){}// expected-warning{{'os_returns_not_retained' attribute only applies to pointer/reference-to-OSObject-pointer parameters}}
voidwrite_into_not_retainedout_parameter_too_many_pointers(__attribute__((os_returns_not_retained))S***out){}// expected-warning{{'os_returns_not_retained' attribute only applies to pointer/reference-to-OSObject-pointer parameters}}