diff options
| author | Anders Carlsson <andersca@mac.com> | 2011-03-25 15:04:23 +0000 |
|---|---|---|
| committer | Anders Carlsson <andersca@mac.com> | 2011-03-25 15:04:23 +0000 |
| commit | 69f1f9391bf11589ad1704d586309a96ee132903 (patch) | |
| tree | 0ec4b60188c53ad46c8552c1058db7f0326f0b54 /clang | |
| parent | 65c76d3826059d634f0627bf4034df9619dbb291 (diff) | |
| download | bcm5719-llvm-69f1f9391bf11589ad1704d586309a96ee132903.tar.gz bcm5719-llvm-69f1f9391bf11589ad1704d586309a96ee132903.zip | |
we can now claim to fully support the override control feature in C++0x.
llvm-svn: 128281
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/docs/LanguageExtensions.html | 6 | ||||
| -rw-r--r-- | clang/lib/Lex/PPMacroExpansion.cpp | 1 | ||||
| -rw-r--r-- | clang/test/Lexer/has_feature_cxx0x.cpp | 8 |
3 files changed, 15 insertions, 0 deletions
diff --git a/clang/docs/LanguageExtensions.html b/clang/docs/LanguageExtensions.html index 30aa0e121e7..1cd77a1791c 100644 --- a/clang/docs/LanguageExtensions.html +++ b/clang/docs/LanguageExtensions.html @@ -38,6 +38,7 @@ td { <li><a href="#cxx_deleted_functions">C++0x deleted functions</a></li> <li><a href="#cxx_lambdas">C++0x lambdas</a></li> <li><a href="#cxx_nullptr">C++0x nullptr</a></li> + <li><a href="#cxx_override_control">C++0x override control</a></li> <li><a href="#cxx_rvalue_references">C++0x rvalue references</a></li> <li><a href="#cxx_reference_qualified_functions">C++0x reference-qualified functions</a></li> <li><a href="#cxx_static_assert">C++0x <tt>static_assert()</tt></a></li> @@ -399,6 +400,11 @@ lambdas is enabled. clang does not currently implement this feature.</p> <tt>nullptr</tt> is enabled. clang does not yet fully implement this feature.</p> +<h3 id="cxx_override_control">C++0x <tt>override control</tt></h3> + +<p>Use <tt>__has_feature(cxx_override_control)</tt> to determine if support for +the override control keywords is enabled.</p> + <h3 id="cxx_reference_qualified_functions">C++0x reference-qualified functions</h3> <p>Use <tt>__has_feature(cxx_reference_qualified_functions)</tt> to determine if support for reference-qualified functions (e.g., member functions with <code>&</code> or <code>&&</code> applied to <code>*this</code>) is enabled.</p> diff --git a/clang/lib/Lex/PPMacroExpansion.cpp b/clang/lib/Lex/PPMacroExpansion.cpp index 62d3dba5cc6..e1fc0ba88fc 100644 --- a/clang/lib/Lex/PPMacroExpansion.cpp +++ b/clang/lib/Lex/PPMacroExpansion.cpp @@ -562,6 +562,7 @@ static bool HasFeature(const Preprocessor &PP, const IdentifierInfo *II) { //.Case("cxx_lambdas", false) .Case("cxx_noexcept", LangOpts.CPlusPlus0x) //.Case("cxx_nullptr", false) + .Case("cxx_override_control", LangOpts.CPlusPlus0x) .Case("cxx_reference_qualified_functions", LangOpts.CPlusPlus0x) .Case("cxx_rvalue_references", LangOpts.CPlusPlus0x) .Case("cxx_strong_enums", LangOpts.CPlusPlus0x) diff --git a/clang/test/Lexer/has_feature_cxx0x.cpp b/clang/test/Lexer/has_feature_cxx0x.cpp index ff0e85d33ac..93e8782bcde 100644 --- a/clang/test/Lexer/has_feature_cxx0x.cpp +++ b/clang/test/Lexer/has_feature_cxx0x.cpp @@ -126,3 +126,11 @@ int no_noexcept(); // CHECK-0X: has_noexcept // CHECK-NO-0X: no_noexcept +#if __has_feature(cxx_override_control) +int has_override_control(); +#else +int no_override_control(); +#endif + +// CHECK-0X: has_override_control +// CHECK-NO-0X: no_override_control |

