Add support for __builtin_available to __has_builtin
authorAlex Lorenz <arphaman@gmail.com>
Wed, 12 Apr 2017 11:03:25 +0000 (11:03 +0000)
committerAlex Lorenz <arphaman@gmail.com>
Wed, 12 Apr 2017 11:03:25 +0000 (11:03 +0000)
rdar://31576715

llvm-svn: 300049

clang/lib/Lex/PPMacroExpansion.cpp
clang/test/Parser/objc-available.m

index de166c7..358c96a 100644 (file)
@@ -1746,6 +1746,7 @@ void Preprocessor::ExpandBuiltinMacro(Token &Tok) {
           return llvm::StringSwitch<bool>(II->getName())
                       .Case("__make_integer_seq", LangOpts.CPlusPlus)
                       .Case("__type_pack_element", LangOpts.CPlusPlus)
+                      .Case("__builtin_available", true)
                       .Default(false);
         }
       });
index d18ac1f..a170721 100644 (file)
@@ -20,3 +20,8 @@ void f() {
   (void)@available(macos); // expected-error{{expected a version}}
   (void)@available; // expected-error{{expected '('}}
 }
+
+#if __has_builtin(__builtin_available)
+#error expected
+// expected-error@-1 {{expected}}
+#endif