From 1cb2af0b3a84ed6ca384970357a8094745865d9c Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Tue, 14 Feb 2012 22:56:17 +0000 Subject: [PATCH] Advertize support for constexpr. llvm-svn: 150524 --- clang/docs/LanguageExtensions.html | 2 +- clang/lib/Lex/PPMacroExpansion.cpp | 2 +- clang/test/Lexer/has_feature_cxx0x.cpp | 9 +++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/clang/docs/LanguageExtensions.html b/clang/docs/LanguageExtensions.html index 7693d2415408..09832db1ca02 100644 --- a/clang/docs/LanguageExtensions.html +++ b/clang/docs/LanguageExtensions.html @@ -668,7 +668,7 @@ parsing with C++11's square bracket notation is enabled.

Use __has_feature(cxx_constexpr) to determine if support for generalized constant expressions (e.g., constexpr) is -enabled. Clang does not currently implement this feature.

+enabled.

C++11 decltype()

diff --git a/clang/lib/Lex/PPMacroExpansion.cpp b/clang/lib/Lex/PPMacroExpansion.cpp index 3fe3ab3b195d..a285c30d5cf6 100644 --- a/clang/lib/Lex/PPMacroExpansion.cpp +++ b/clang/lib/Lex/PPMacroExpansion.cpp @@ -638,7 +638,7 @@ static bool HasFeature(const Preprocessor &PP, const IdentifierInfo *II) { .Case("cxx_atomic", LangOpts.CPlusPlus0x) .Case("cxx_attributes", LangOpts.CPlusPlus0x) .Case("cxx_auto_type", LangOpts.CPlusPlus0x) - //.Case("cxx_constexpr", false); + .Case("cxx_constexpr", LangOpts.CPlusPlus0x) .Case("cxx_decltype", LangOpts.CPlusPlus0x) .Case("cxx_default_function_template_args", LangOpts.CPlusPlus0x) .Case("cxx_defaulted_functions", LangOpts.CPlusPlus0x) diff --git a/clang/test/Lexer/has_feature_cxx0x.cpp b/clang/test/Lexer/has_feature_cxx0x.cpp index f02f1031add3..17ed6fbfafd7 100644 --- a/clang/test/Lexer/has_feature_cxx0x.cpp +++ b/clang/test/Lexer/has_feature_cxx0x.cpp @@ -217,3 +217,12 @@ int no_unicode_literals(); // CHECK-0X: has_unicode_literals // CHECK-NO-0X: no_unicode_literals + +#if __has_feature(cxx_constexpr) +int has_constexpr(); +#else +int no_constexpr(); +#endif + +// CHECK-0X: has_constexpr +// CHECK-NO-0X: no_constexpr