diff options
| author | Ted Kremenek <kremenek@apple.com> | 2010-03-05 22:43:32 +0000 |
|---|---|---|
| committer | Ted Kremenek <kremenek@apple.com> | 2010-03-05 22:43:32 +0000 |
| commit | a00c5db1a8091d0ae70428f0c615229572136232 (patch) | |
| tree | 7b537db7ed75188e4374bc382a88116445e06ce4 | |
| parent | a6d3ab394c4cd854b5a7b600a578a7a75c69507c (diff) | |
| download | bcm5719-llvm-a00c5db1a8091d0ae70428f0c615229572136232.tar.gz bcm5719-llvm-a00c5db1a8091d0ae70428f0c615229572136232.zip | |
Augment __has_feature to report that Clang supports adding attribute 'unused'
to an Objective-C instance variable.
llvm-svn: 97850
| -rw-r--r-- | clang/lib/Lex/PPMacroExpansion.cpp | 1 | ||||
| -rw-r--r-- | clang/test/SemaObjC/unused.m | 10 |
2 files changed, 10 insertions, 1 deletions
diff --git a/clang/lib/Lex/PPMacroExpansion.cpp b/clang/lib/Lex/PPMacroExpansion.cpp index d60cf0804f5..5fe2ef172e2 100644 --- a/clang/lib/Lex/PPMacroExpansion.cpp +++ b/clang/lib/Lex/PPMacroExpansion.cpp @@ -505,6 +505,7 @@ static bool HasFeature(const Preprocessor &PP, const IdentifierInfo *II) { .Case("attribute_cf_returns_retained", true) .Case("attribute_ns_returns_not_retained", true) .Case("attribute_ns_returns_retained", true) + .Case("attribute_objc_ivar_unused", true) .Default(false); } diff --git a/clang/test/SemaObjC/unused.m b/clang/test/SemaObjC/unused.m index e99418875ae..a33a1bc02f9 100644 --- a/clang/test/SemaObjC/unused.m +++ b/clang/test/SemaObjC/unused.m @@ -39,7 +39,15 @@ void test2() { // instance variables, which GCC does not. //===------------------------------------------------------------------------=== +#if __has_feature(attribute_objc_ivar_unused) +#define UNUSED_IVAR __attribute__((unused)) +#else +#error __attribute__((unused)) not supported on ivars +#endif + @interface TestUnusedIvar { - id x __attribute__((unused)); // no-warning + id y __attribute__((unused)); // no-warning + id x UNUSED_IVAR; // no-warning } @end + |

