[gcc(refs/vendors/redhat/heads/gcc-10-branch)] coroutines, libstdc++-v3: Update to n4861 C++20 DIS.

Jakub Jelinek jakub@gcc.gnu.org
Thu Apr 30 22:06:54 GMT 2020


https://gcc.gnu.org/g:dcf69ac5448fd6a16137cfe9fe6deadd0ec0243d

commit dcf69ac5448fd6a16137cfe9fe6deadd0ec0243d
Author: Iain Sandoe <iain@sandoe.co.uk>
Date:   Thu Apr 23 15:36:29 2020 +0100

    coroutines, libstdc++-v3: Update to n4861 C++20 DIS.
    
    Update the inline namespace to __n4861.
    Add '__cpp_lib_coroutine' defined to 201902L per n4861.
    
    libstdc++-v3/ChangeLog:
    
    2020-04-23  Iain Sandoe  <iain@sandoe.co.uk>
    
            * include/std/coroutine: Update the inline namespace to __n4861.
            Add the __cpp_lib_coroutine define, set to 201902L.
            * include/std/version: Add __cpp_lib_coroutine, set to 201902L.
    
    gcc/testsuite/ChangeLog:
    
    2020-04-23  Iain Sandoe  <iain@sandoe.co.uk>
    
            * g++.dg/coroutines/coro-bad-alloc-00-bad-op-new.C: Adjust for
            changed inline namespace.
            * g++.dg/coroutines/coro-bad-alloc-01-bad-op-del.C: Likewise.
            * g++.dg/coroutines/coro-bad-alloc-02-no-op-new-nt.C: Likewise
            * g++.dg/coroutines/coro.h: Likewise

Diff:
---
 gcc/testsuite/ChangeLog                                          | 8 ++++++++
 gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-00-bad-op-new.C   | 2 +-
 gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-01-bad-op-del.C   | 2 +-
 gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-02-no-op-new-nt.C | 2 +-
 gcc/testsuite/g++.dg/coroutines/coro.h                           | 4 ++--
 libstdc++-v3/ChangeLog                                           | 6 ++++++
 libstdc++-v3/include/std/coroutine                               | 9 ++++++---
 libstdc++-v3/include/std/version                                 | 3 +++
 8 files changed, 28 insertions(+), 8 deletions(-)

diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 15e7d9e4893..cb21f552875 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2020-04-23 Iain Sandoe <iain@sandoe.co.uk>
+
+	* g++.dg/coroutines/coro-bad-alloc-00-bad-op-new.C: Adjust for
+	changed inline namespace.
+	* g++.dg/coroutines/coro-bad-alloc-01-bad-op-del.C: Likewise.
+	* g++.dg/coroutines/coro-bad-alloc-02-no-op-new-nt.C: Likewise
+	* g++.dg/coroutines/coro.h: Likewise
+
 2020-04-23  Szabolcs Nagy  <szabolcs.nagy@arm.com>
 
 	PR target/94697
diff --git a/gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-00-bad-op-new.C b/gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-00-bad-op-new.C
index 1fdce1dad1d..06543a98824 100644
--- a/gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-00-bad-op-new.C
+++ b/gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-00-bad-op-new.C
@@ -6,7 +6,7 @@
 #include "coro1-allocators.h"
 
 struct coro1
-f ()  /* { dg-error {'operator new' is provided by 'std::__n4835::coroutine_traits<coro1>::promise_type' \{aka 'coro1::promise_type'\} but is not usable with the function signature 'coro1 f\(\)'} } */
+f ()  /* { dg-error {'operator new' is provided by 'std::__n4861::coroutine_traits<coro1>::promise_type' \{aka 'coro1::promise_type'\} but is not usable with the function signature 'coro1 f\(\)'} } */
 {
   co_return;
 }
diff --git a/gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-01-bad-op-del.C b/gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-01-bad-op-del.C
index be804796835..9a4ec34cdf3 100644
--- a/gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-01-bad-op-del.C
+++ b/gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-01-bad-op-del.C
@@ -6,7 +6,7 @@
 #include "coro1-allocators.h"
 
 struct coro1
-f ()  /* { dg-error {'operator delete' is provided by 'std::__n4835::coroutine_traits<coro1>::promise_type' \{aka 'coro1::promise_type'\} but is not usable with the function signature 'coro1 f\(\)'} } */
+f ()  /* { dg-error {'operator delete' is provided by 'std::__n4861::coroutine_traits<coro1>::promise_type' \{aka 'coro1::promise_type'\} but is not usable with the function signature 'coro1 f\(\)'} } */
 {
   co_return;
 }
diff --git a/gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-02-no-op-new-nt.C b/gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-02-no-op-new-nt.C
index eae2dada911..c0c0792d31d 100644
--- a/gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-02-no-op-new-nt.C
+++ b/gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-02-no-op-new-nt.C
@@ -9,7 +9,7 @@
 #include "coro1-allocators.h"
 
 struct coro1
-f () /* { dg-error {'coro1::promise_type::get_return_object_on_allocation_failure\(\)\(\)' is provided by 'std::__n4835::coroutine_traits<coro1>::promise_type' \{aka 'coro1::promise_type'\} but 'operator new' is not marked 'throw\(\)' or 'noexcept'} } */
+f () /* { dg-error {'coro1::promise_type::get_return_object_on_allocation_failure\(\)\(\)' is provided by 'std::__n4861::coroutine_traits<coro1>::promise_type' \{aka 'coro1::promise_type'\} but 'operator new' is not marked 'throw\(\)' or 'noexcept'} } */
 {
   co_return;
 }
diff --git a/gcc/testsuite/g++.dg/coroutines/coro.h b/gcc/testsuite/g++.dg/coroutines/coro.h
index a1bd38b8d12..fccfe418616 100644
--- a/gcc/testsuite/g++.dg/coroutines/coro.h
+++ b/gcc/testsuite/g++.dg/coroutines/coro.h
@@ -32,7 +32,7 @@ namespace coro = std::experimental;
 #  if __cpp_impl_coroutine
 
 namespace std {
-inline namespace __n4835 {
+inline namespace __n4861 {
 
 // 21.11.1 coroutine traits
 template<typename _R, typename...> struct coroutine_traits {
@@ -125,7 +125,7 @@ struct suspend_never {
   void await_resume() {}
 };
 
-} // namespace __n4835
+} // namespace __n4861
 } // namespace std
 
 namespace coro = std;
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index fb0c1acd268..b5dc52c66d2 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2020-04-23  Iain Sandoe  <iain@sandoe.co.uk>
+
+	* include/std/coroutine: Update the inline namespace to __n4861.
+	Add the __cpp_lib_coroutine define, set to 201902L.
+	* include/std/version: Add __cpp_lib_coroutine, set to 201902L.
+
 2020-04-22  Jonathan Wakely  <jwakely@redhat.com>
 
 	* include/std/execution (__cpp_lib_execution): Define to indicate
diff --git a/libstdc++-v3/include/std/coroutine b/libstdc++-v3/include/std/coroutine
index 2e45c451450..4fa1355c0ca 100644
--- a/libstdc++-v3/include/std/coroutine
+++ b/libstdc++-v3/include/std/coroutine
@@ -52,10 +52,13 @@
 
 namespace std _GLIBCXX_VISIBILITY (default)
 {
-  _GLIBCXX_BEGIN_NAMESPACE_VERSION
+_GLIBCXX_BEGIN_NAMESPACE_VERSION
 
 #if __cpp_impl_coroutine
-  inline namespace __n4835 {
+
+#define __cpp_lib_coroutine 201902L
+
+  inline namespace __n4861 {
 
   // 17.12.2 coroutine traits
   /// [coroutine.traits]
@@ -277,7 +280,7 @@ namespace std _GLIBCXX_VISIBILITY (default)
     void await_resume() {}
   };
 
-  } // namespace __n4835
+  } // namespace __n4861
 
 #else
 #error "the coroutine header requires -fcoroutines"
diff --git a/libstdc++-v3/include/std/version b/libstdc++-v3/include/std/version
index 3024f1caf8b..d06d60c9106 100644
--- a/libstdc++-v3/include/std/version
+++ b/libstdc++-v3/include/std/version
@@ -69,6 +69,9 @@
 
 #if __cplusplus >= 201402L
 // c++14
+#if __cpp_impl_coroutine
+# define __cpp_lib_coroutine 201902L
+#endif
 #define __cpp_lib_integral_constant_callable 201304
 #define __cpp_lib_is_final 201402L
 #define __cpp_lib_transformation_trait_aliases 201304


More information about the Libstdc++-cvs mailing list