]> granicus.if.org Git - clang/commitdiff
Add a couple more tentative names for upcoming SD-6 feature checks. These might
authorRichard Smith <richard-llvm@metafoo.co.uk>
Wed, 28 Sep 2016 20:42:56 +0000 (20:42 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Wed, 28 Sep 2016 20:42:56 +0000 (20:42 +0000)
not reflect the final chosen names, but supporting them now seems to have
little downside.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282629 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Frontend/InitPreprocessor.cpp
test/Lexer/cxx-features.cpp
www/cxx_status.html

index 0351106a0aec7e5523c01368a34a6354c99b0cb1..0ffc0c6ee60b93597b0e1a56b4e15db9a50a5b73 100644 (file)
@@ -500,8 +500,12 @@ static void InitializeCPlusPlusFeatureTestMacros(const LangOptions &LangOpts,
   // C++17 features.
   if (LangOpts.CPlusPlus1z) {
     Builder.defineMacro("__cpp_hex_float", "201603");
+    Builder.defineMacro("__cpp_inline_variables", "201606");
+    //Builder.defineMacro("__cpp_aligned_new", "201606");
     //Builder.defineMacro("__cpp_noexcept_function_type", "201510");
     Builder.defineMacro("__cpp_capture_star_this", "201603");
+    Builder.defineMacro("__cpp_if_constexpr", "201606");
+    //Builder.defineMacro("__cpp_template_auto", "201606");
     Builder.defineMacro("__cpp_namespace_attributes", "201411");
     Builder.defineMacro("__cpp_enumerator_attributes", "201411");
     Builder.defineMacro("__cpp_nested_namespace_definitions", "201411");
index 18fdaa5dda3e1d5b74410bb76300cd3664b129e7..f7a4ce12985cbf7931dac262069c310f46488dc4 100644 (file)
 #error "wrong value for __cpp_hex_float"
 #endif
 
+#if check(inline_variables, 0, 0, 0, 201606) // FIXME: provisional name
+#error "wrong value for __cpp_inline_variables"
+#endif
+
+#if check(aligned_new, 0, 0, 0, 0) // FIXME: provisional name
+// FIXME: value shuld be 201606 for cxx1z once implemented
+#error "wrong value for __cpp_aligned_new"
+#endif
+
 #if check(noexcept_function_type, 0, 0, 0, 0)
 // FIXME: value shuld be 201510 for cxx1z once implemented
 #error "wrong value for __cpp_noexcept_function_type"
 
 // FIXME: bump __cpp_constexpr to 201603 for constexpr lambda support
 
+#if check(if_constexpr, 0, 0, 0, 201606) // FIXME: provisional name
+#error "wrong value for __cpp_if_constexpr"
+#endif
+
 // range_based_for checked below
 
 // static_assert checked below
 
+#if check(template_auto, 0, 0, 0, 0) // FIXME: provisional name
+// FIXME: value shuld be 201606 for cxx1z once implemented
+#error "wrong value for __cpp_template_auto"
+#endif
+
 #if check(namespace_attributes, 0, 0, 0, 201411)
 // FIXME: allowed without warning in C++14 and C++11
 #error "wrong value for __cpp_namespace_attributes"
@@ -63,6 +81,9 @@
 #error "wrong value for __cpp_aggregate_bases"
 #endif
 
+// FIXME: structured_bindings / decomposition_decl name not yet settled, and
+// Clang implementation is incomplete.
+
 #if check(nontype_template_args, 0, 0, 0, 201411)
 #error "wrong value for __cpp_nontype_template_args"
 #endif
index 76ab17317f213b838487b3f0f3da921b4ff4d6c5..1708211335fedf4839027fe0123ba604d5249eec 100644 (file)
@@ -761,8 +761,8 @@ Clang version they became available:</p>
     <th>Available in Clang?</th>
  </tr>
     <tr>
-      <td rowspan="2">SD-6: SG10 feature test recommendations</td>
-      <td rowspan="2"><a href="http://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations">SD-6</a></td>
+      <td rowspan="3">SD-6: SG10 feature test recommendations</td>
+      <td rowspan="3"><a href="http://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations">SD-6</a></td>
       <td class="full" align="center">
         Clang 3.4 (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3745">N3745</a>)</br>
       </td>