[Bug c++/100127] [coroutines] internal compiler error compiling promise with custom awaiter

iains at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Apr 19 08:15:13 GMT 2021


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100127

--- Comment #1 from Iain Sandoe <iains at gcc dot gnu.org> ---
I think that this issue is already fixed in the released 10.3 branch and in
master (will shortly become GCC11).  Please could you try one of those?

$ ./gcc-10/gcc-10/bin/g++ -std=c++20 -fcoroutines pr100127.C -S -save-temps
pr100127.C: In function ‘future create_future()’:
pr100127.C:54:8: error: the coroutine promise type
‘std::__n4861::__coroutine_traits_impl<future, void>::promise_type’ {aka
‘future::promise_type’} declares both ‘return_value’ and ‘return_void’
   54 | future create_future()
      |        ^~~~~~~~~~~~~
pr100127.C:49:14: note: ‘return_void’ declared here
   49 |         void return_void() {}
      |              ^~~~~~~~~~~
pr100127.C:31:14: note: ‘return_value’ declared here
   31 |         void return_value(value_type val) {
      |              ^~~~~~~~~~~~

=== 

$ ./gcc-master/gcc-11-0-1/bin/g++ -std=c++20 -fcoroutines pr100127.C -S
-save-temps
pr100127.C: In function ‘future create_future()’:
pr100127.C:54:8: error: the coroutine promise type
‘std::__n4861::__coroutine_traits_impl<future, void>::promise_type’ {aka
‘future::promise_type’} declares both ‘return_value’ and ‘return_void’
   54 | future create_future()
      |        ^~~~~~~~~~~~~
pr100127.C:49:14: note: ‘return_void’ declared here
   49 |         void return_void() {}
      |              ^~~~~~~~~~~
pr100127.C:31:14: note: ‘return_value’ declared here
   31 |         void return_value(value_type val) {
      |              ^~~~~~~~~~~~


More information about the Gcc-bugs mailing list