Have '__have_extension(cxx_variadic_templates)' return true for any C++ standard.
authorEric Fiselier <eric@efcs.ca>
Tue, 12 May 2015 22:37:23 +0000 (22:37 +0000)
committerEric Fiselier <eric@efcs.ca>
Tue, 12 May 2015 22:37:23 +0000 (22:37 +0000)
llvm-svn: 237202

clang/lib/Lex/PPMacroExpansion.cpp
clang/test/Lexer/has_extension_cxx.cpp

index 87a07a4..7121578 100644 (file)
@@ -1237,6 +1237,7 @@ static bool HasExtension(const Preprocessor &PP, const IdentifierInfo *II) {
            .Case("cxx_range_for", LangOpts.CPlusPlus)
            .Case("cxx_reference_qualified_functions", LangOpts.CPlusPlus)
            .Case("cxx_rvalue_references", LangOpts.CPlusPlus)
+           .Case("cxx_variadic_templates", LangOpts.CPlusPlus)
            // C++1y features supported by other languages as extensions.
            .Case("cxx_binary_literals", true)
            .Case("cxx_init_captures", LangOpts.CPlusPlus11)
index d3483df..d1267ea 100644 (file)
@@ -41,6 +41,11 @@ int has_reference_qualified_functions();
 int has_rvalue_references();
 #endif
 
+// CHECK: has_variadic_templates
+#if __has_extension(cxx_variadic_templates)
+int has_variadic_templates();
+#endif
+
 // CHECK: has_local_type_template_args
 #if __has_extension(cxx_local_type_template_args)
 int has_local_type_template_args();