From: Douglas Gregor Date: Sat, 26 Mar 2011 12:16:15 +0000 (+0000) Subject: Add a __has_feature check for the 'availability' attribute X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dceb53180ae145915673913a9398ba4a00b05584;p=clang Add a __has_feature check for the 'availability' attribute git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128337 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Lex/PPMacroExpansion.cpp b/lib/Lex/PPMacroExpansion.cpp index e1fc0ba88f..71f332769e 100644 --- a/lib/Lex/PPMacroExpansion.cpp +++ b/lib/Lex/PPMacroExpansion.cpp @@ -530,6 +530,7 @@ static bool HasFeature(const Preprocessor &PP, const IdentifierInfo *II) { return llvm::StringSwitch(II->getName()) .Case("attribute_analyzer_noreturn", true) + .Case("attribute_availability", true) .Case("attribute_cf_returns_not_retained", true) .Case("attribute_cf_returns_retained", true) .Case("attribute_deprecated_with_message", true) diff --git a/test/Parser/attr-availability.c b/test/Parser/attr-availability.c index 63bb5271e5..269f90847d 100644 --- a/test/Parser/attr-availability.c +++ b/test/Parser/attr-availability.c @@ -1,4 +1,9 @@ // RUN: %clang_cc1 -fsyntax-only -verify %s + +#if !__has_feature(attribute_availability) +# error 'availability' attribute is not available +#endif + void f0() __attribute__((availability(macosx,introduced=10.2,deprecated=10.4,obsoleted=10.6))); void f1() __attribute__((availability(macosx,deprecated=10.4,introduced=10.2,obsoleted=10.6)));