]> granicus.if.org Git - clang/commitdiff
we can now claim to fully support the override control feature in C++0x.
authorAnders Carlsson <andersca@mac.com>
Fri, 25 Mar 2011 15:04:23 +0000 (15:04 +0000)
committerAnders Carlsson <andersca@mac.com>
Fri, 25 Mar 2011 15:04:23 +0000 (15:04 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128281 91177308-0d34-0410-b5e6-96231b3b80d8

docs/LanguageExtensions.html
lib/Lex/PPMacroExpansion.cpp
test/Lexer/has_feature_cxx0x.cpp

index 30aa0e121e7c77167749feafe315cfe39ea276a6..1cd77a1791c9568041464eaa4e744c334c4b0dbc 100644 (file)
@@ -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>&amp;</code> or <code>&amp;&amp;</code> applied to <code>*this</code>) is enabled.</p>
 
index 62d3dba5cc6fc869a9e6193c9fd8fc7c0119d3cb..e1fc0ba88fcd46b85520ad359f975ff8d5475e70 100644 (file)
@@ -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)
index ff0e85d33ac663ee821bc5c570fcde029002c465..93e8782bcde4e2bd4cc8e921530ed0f2cbd25fb2 100644 (file)
@@ -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