[attributes] Extend os_returns_(not_?)_retained attributes to parameters
authorGeorge Karpenkov <ekarpenkov@apple.com>
Fri, 11 Jan 2019 18:02:08 +0000 (18:02 +0000)
committerGeorge Karpenkov <ekarpenkov@apple.com>
Fri, 11 Jan 2019 18:02:08 +0000 (18:02 +0000)
commit3a50a9fe74468ea376e59f81131a873fb1b4d7d7
treeb9724f38e8faa0da7203d0bf112a23cf47ad0371
parent473cfda1f439828da049988962550da45d7b7337
[attributes] Extend os_returns_(not_?)_retained attributes to parameters

When applied to out-parameters, the attributes specify the expected lifetime of the written-into object.

Additionally, introduce OSReturnsRetainedOn(Non)Zero attributes, which
specify that an ownership transfer happens depending on a return code.

Differential Revision: https://reviews.llvm.org/D56292

llvm-svn: 350942
clang/include/clang/Basic/Attr.td
clang/include/clang/Basic/AttrDocs.td
clang/include/clang/Basic/DiagnosticSemaKinds.td
clang/lib/Sema/SemaDeclAttr.cpp
clang/test/Misc/pragma-attribute-supported-attributes-list.test
clang/test/Sema/attr-osobject.cpp
clang/test/Sema/attr-osobject.mm