]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fix missing or incorrect feature test macros
authorJonathan Wakely <jwakely@redhat.com>
Thu, 23 May 2019 15:08:52 +0000 (16:08 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Thu, 23 May 2019 15:08:52 +0000 (16:08 +0100)
Backported from mainline
2019-01-15  Jonathan Wakely  <jwakely@redhat.com>

* doc/xml/manual/status_cxx2017.xml: Document P0032R3 and P0307R2
status.
* include/bits/stl_uninitialized.h (__cpp_lib_raw_memory_algorithms):
Define.
* include/std/any (__cpp_lib_any): Define as 201606L, because P0032R3
changes are supported.
* include/std/optional (__cpp_lib_optional): Likewise.
* include/std/variant (__cpp_lib_variant): Likewise.

From-SVN: r271564

libstdc++-v3/ChangeLog
libstdc++-v3/doc/html/manual/status.html
libstdc++-v3/doc/xml/manual/status_cxx2017.xml
libstdc++-v3/include/bits/stl_uninitialized.h
libstdc++-v3/include/std/any
libstdc++-v3/include/std/optional
libstdc++-v3/include/std/variant

index 028ab8defd5387a7c8d2133e7001910c8e9ccc62..f8480a46dbb0a4598de31c629f50a4ec88d081c1 100644 (file)
@@ -1,3 +1,17 @@
+2019-05-23  Jonathan Wakely  <jwakely@redhat.com>
+
+       Backported from mainline
+       2019-01-15  Jonathan Wakely  <jwakely@redhat.com>
+
+       * doc/xml/manual/status_cxx2017.xml: Document P0032R3 and P0307R2
+       status.
+       * include/bits/stl_uninitialized.h (__cpp_lib_raw_memory_algorithms):
+       Define.
+       * include/std/any (__cpp_lib_any): Define as 201606L, because P0032R3
+       changes are supported.
+       * include/std/optional (__cpp_lib_optional): Likewise.
+       * include/std/variant (__cpp_lib_variant): Likewise.
+
 2019-05-08  Jonathan Wakely  <jwakely@redhat.com>
 
        Backport from mainline
index 014760a2f64f38c806da6f34e11ebd373d0c176b..4da9f0ad4b3dd46422ababc6360a21c8f690fea6 100644 (file)
@@ -657,7 +657,7 @@ Feature-testing recommendations for C++</a>.
        <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0040r3.html" target="_top">
        P0040R3
        </a>
-      </td><td align="center"> 7.1 </td><td align="left"><code class="code"> </code></td></tr><tr><td align="left"> <code class="code">shared_ptr::weak_type</code></td><td align="left">
+      </td><td align="center"> 7.1 </td><td align="left"><code class="code">__cpp_lib_raw_memory_algorithms &gt;= 201606L</code></td></tr><tr><td align="left"> <code class="code">shared_ptr::weak_type</code></td><td align="left">
        <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0163r0.html" target="_top">
        P0163R0
        </a>
@@ -811,7 +811,19 @@ Feature-testing recommendations for C++</a>.
        P0067R5
        </a>
       </td><td align="center"> 8 (only integral types supported) </td><td align="left"><code class="code"> __has_include(&lt;charconv&gt;) </code>
-             <code class="code"> __cpp_lib_to_chars &gt;= 201611 </code></td></tr></tbody></table></div></div><br class="table-break" /><p>
+             <code class="code"> __cpp_lib_to_chars &gt;= 201611 </code></td></tr><tr><td align="left"> Homogeneous interface for variant, any and optional </td><td align="left">
+       <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0032r3.pdf" target="_top">
+       P0032R3
+       </a>
+      </td><td align="center"> 7.1  </td><td align="left">
+             <code class="code"> __cpp_lib_any &gt;= 201606 </code>,
+             <code class="code"> __cpp_lib_optional &gt;= 201606 </code>,
+             <code class="code"> __cpp_lib_variant &gt;= 201606 </code>
+      </td></tr><tr><td align="left"> Making Optional Greater Equal Again </td><td align="left">
+       <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0307r2.pdf" target="_top">
+       P0307R2
+       </a>
+      </td><td align="center"> 7.1  </td><td align="left"> <code class="code"> __cpp_lib_optional &gt;= 201606 </code> </td></tr></tbody></table></div></div><br class="table-break" /><p>
 Note 1: This feature is supported in GCC 7.1 and 7.2 but before GCC 7.3 the
 <code class="code">__cpp_lib</code> macro is not defined, and compilation will fail if the
 header is included without using <code class="option">-std</code> to enable C++17 support.
index 168933808ebe29b596817916c0212ab69ce4c9ac..8ca06117742456b2bea57b7c64193b2ad6a96af1 100644 (file)
@@ -381,7 +381,7 @@ Feature-testing recommendations for C++</link>.
        </link>
       </entry>
       <entry align="center"> 7.1 </entry>
-      <entry><code> </code></entry>
+      <entry><code>__cpp_lib_raw_memory_algorithms &gt;= 201606L</code></entry>
     </row>
 
     <row>
@@ -789,6 +789,31 @@ Feature-testing recommendations for C++</link>.
              <code> __cpp_lib_to_chars >= 201611 </code></entry>
     </row>
 
+    <row>
+      <entry> Homogeneous interface for variant, any and optional </entry>
+      <entry>
+       <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0032r3.pdf">
+       P0032R3
+       </link>
+      </entry>
+      <entry align="center"> 7.1  </entry>
+      <entry>
+             <code> __cpp_lib_any >= 201606 </code>,
+             <code> __cpp_lib_optional >= 201606 </code>,
+             <code> __cpp_lib_variant >= 201606 </code>
+      </entry>
+    </row>
+
+    <row>
+      <entry> Making Optional Greater Equal Again </entry>
+      <entry>
+       <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0307r2.pdf">
+       P0307R2
+       </link>
+      </entry>
+      <entry align="center"> 7.1  </entry>
+      <entry> <code> __cpp_lib_optional >= 201606 </code> </entry>
+    </row>
 
   </tbody>
 </tgroup>
index c2ba863ed984646d04682dd56158c2d0f0a85b6a..89e311b2cb2eacc2d265f48d6b534d636235bdc1 100644 (file)
@@ -827,6 +827,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 #endif
 
 #if __cplusplus > 201402L
+# define __cpp_lib_raw_memory_algorithms 201606L
+
   template <typename _ForwardIterator>
     inline void
     uninitialized_default_construct(_ForwardIterator __first,
index 50daa80fcf9ed7cec741b1960d70f201a362d28f..b0047180fb5d142e26daf6965679f1453824abba 100644 (file)
@@ -66,7 +66,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 #endif
   }
 
-#define __cpp_lib_any 201603
+#define __cpp_lib_any 201606L
 
   /**
    *  @brief A type-safe container of any type.
index 49ed8632227f3ae6ce33348e38fc596c98bc180d..ba5a478df7e74b43b8b48f9b9f3386027a487d26 100644 (file)
@@ -51,7 +51,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
    *  @{
    */
 
-#define __cpp_lib_optional 201603
+#define __cpp_lib_optional 201606L
 
   template<typename _Tp>
     class optional;
index 2efe62cfe7ca68e084cc2f71bed6410c475a8d18..79c84e1f6a8fe60900624dbce12b95d2008e08af 100644 (file)
@@ -71,7 +71,7 @@ _GLIBCXX_END_NAMESPACE_VERSION
 
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
-#define __cpp_lib_variant 201603
+#define __cpp_lib_variant 201606L
 
   template<typename... _Types> class tuple;
   template<typename... _Types> class variant;