diff options
author | Douglas Gregor <dgregor@apple.com> | 2015-06-19 23:17:46 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2015-06-19 23:17:46 +0000 |
commit | eb6e64ca8fd72725153fc25914f94a771d9c8572 (patch) | |
tree | d2722fd8b182c767f33ef4e5dfd4b4b1db8c6a40 /clang/lib/Lex/PPMacroExpansion.cpp | |
parent | 74ecc89c464a858f261ec279dd202dfafa476d7d (diff) | |
download | bcm5719-llvm-eb6e64ca8fd72725153fc25914f94a771d9c8572.tar.gz bcm5719-llvm-eb6e64ca8fd72725153fc25914f94a771d9c8572.zip |
Allow the cf_returns_[not_]retained attributes to appear on out-parameters.
Includes a simple static analyzer check and not much else, but we'll also
be able to take advantage of this in Swift.
This feature can be tested for using __has_feature(cf_returns_on_parameters).
This commit also contains two fixes:
- Look through non-typedef sugar when deciding whether something is a CF type.
- When (cf|ns)_returns(_not)?_retained is applied to invalid properties,
refer to "property" instead of "method" in the error message.
rdar://problem/18742441
llvm-svn: 240185
Diffstat (limited to 'clang/lib/Lex/PPMacroExpansion.cpp')
-rw-r--r-- | clang/lib/Lex/PPMacroExpansion.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/clang/lib/Lex/PPMacroExpansion.cpp b/clang/lib/Lex/PPMacroExpansion.cpp index ad115bace99..5e0b283bd77 100644 --- a/clang/lib/Lex/PPMacroExpansion.cpp +++ b/clang/lib/Lex/PPMacroExpansion.cpp @@ -1059,6 +1059,7 @@ static bool HasFeature(const Preprocessor &PP, const IdentifierInfo *II) { .Case("attribute_availability_app_extension", true) .Case("attribute_cf_returns_not_retained", true) .Case("attribute_cf_returns_retained", true) + .Case("attribute_cf_returns_on_parameters", true) .Case("attribute_deprecated_with_message", true) .Case("attribute_ext_vector_type", true) .Case("attribute_ns_returns_not_retained", true) |