diff options
| author | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-09-27 20:19:41 +0000 |
|---|---|---|
| committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-09-27 20:19:41 +0000 |
| commit | dca0c7a5fbeafe27bcfc31703e00bf99c19533ea (patch) | |
| tree | 0f51dba4850160ae1c3a37307c1164351b4c6377 /clang | |
| parent | 8809a0c95e7aa9e858f455bbb9a3f5a3c4ae96d3 (diff) | |
| download | bcm5719-llvm-dca0c7a5fbeafe27bcfc31703e00bf99c19533ea.tar.gz bcm5719-llvm-dca0c7a5fbeafe27bcfc31703e00bf99c19533ea.zip | |
Mark variable template implementation as complete. Nearly all of the credit
here goes to Larisse Voufo.
llvm-svn: 191549
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/Lex/PPMacroExpansion.cpp | 3 | ||||
| -rw-r--r-- | clang/test/Lexer/has_extension_cxx.cpp | 11 | ||||
| -rw-r--r-- | clang/test/Lexer/has_feature_cxx0x.cpp | 10 | ||||
| -rw-r--r-- | clang/www/cxx_status.html | 2 |
4 files changed, 19 insertions, 7 deletions
diff --git a/clang/lib/Lex/PPMacroExpansion.cpp b/clang/lib/Lex/PPMacroExpansion.cpp index 865a89e8962..2b6f33951b1 100644 --- a/clang/lib/Lex/PPMacroExpansion.cpp +++ b/clang/lib/Lex/PPMacroExpansion.cpp @@ -961,7 +961,7 @@ static bool HasFeature(const Preprocessor &PP, const IdentifierInfo *II) { .Case("cxx_relaxed_constexpr", LangOpts.CPlusPlus1y) .Case("cxx_return_type_deduction", LangOpts.CPlusPlus1y) //.Case("cxx_runtime_array", LangOpts.CPlusPlus1y) - //.Case("cxx_variable_templates", LangOpts.CPlusPlus1y) + .Case("cxx_variable_templates", LangOpts.CPlusPlus1y) // Type traits .Case("has_nothrow_assign", LangOpts.CPlusPlus) .Case("has_nothrow_copy", LangOpts.CPlusPlus) @@ -1036,6 +1036,7 @@ static bool HasExtension(const Preprocessor &PP, const IdentifierInfo *II) { .Case("cxx_rvalue_references", LangOpts.CPlusPlus) // C++1y features supported by other languages as extensions. .Case("cxx_binary_literals", true) + .Case("cxx_variable_templates", true) .Default(false); } diff --git a/clang/test/Lexer/has_extension_cxx.cpp b/clang/test/Lexer/has_extension_cxx.cpp index 68b542fb297..6646a5ab581 100644 --- a/clang/test/Lexer/has_extension_cxx.cpp +++ b/clang/test/Lexer/has_extension_cxx.cpp @@ -40,16 +40,17 @@ int has_reference_qualified_functions(); int has_rvalue_references(); #endif +// CHECK: has_local_type_template_args #if __has_extension(cxx_local_type_template_args) int has_local_type_template_args(); -#else -int no_local_type_template_args(); #endif -// CHECK: has_local_type_template_args - +// CHECK: has_binary_literals #if __has_extension(cxx_binary_literals) int has_binary_literals(); #endif -// CHECK: has_binary_literals +// CHECK: has_variable_templates +#if __has_extension(cxx_variable_templates) +int has_variable_templates(); +#endif diff --git a/clang/test/Lexer/has_feature_cxx0x.cpp b/clang/test/Lexer/has_feature_cxx0x.cpp index 2dc2abe87cf..821b5b5f570 100644 --- a/clang/test/Lexer/has_feature_cxx0x.cpp +++ b/clang/test/Lexer/has_feature_cxx0x.cpp @@ -376,3 +376,13 @@ int no_relaxed_constexpr(); // CHECK-1Y: has_relaxed_constexpr // CHECK-11: no_relaxed_constexpr // CHECK-NO-11: no_relaxed_constexpr + +#if __has_feature(cxx_variable_templates) +int has_variable_templates(); +#else +int no_variable_templates(); +#endif + +// CHECK-1Y: has_variable_templates +// CHECK-11: no_variable_templates +// CHECK-NO-11: no_variable_templates diff --git a/clang/www/cxx_status.html b/clang/www/cxx_status.html index f28d7f1ecd4..3bcc3f8346d 100644 --- a/clang/www/cxx_status.html +++ b/clang/www/cxx_status.html @@ -451,7 +451,7 @@ available.</p> <tr> <td>Variable templates</td> <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3651.pdf">N3651</a></td> - <td class="partial" align="center">Partial</td> + <td class="svn" align="center">SVN</td> </tr> <tr> <td>Relaxing requirements on constexpr functions</td> |

