coroutines : Convert await_ready () expressions to bool [PR99047].
authorIain Sandoe <iain@sandoe.co.uk>
Sun, 14 Mar 2021 14:42:52 +0000 (14:42 +0000)
committerIain Sandoe <iain@sandoe.co.uk>
Mon, 15 Mar 2021 15:57:42 +0000 (15:57 +0000)
commit541840b891d61ea70cddd046c96698bb70d7f52c
treecd8f9ae7496569d1fbd22420faaaff24f65a1eba
parent020b286c769f4dc8a6b45491351f6bc2e69d7a7f
coroutines : Convert await_ready () expressions to bool [PR99047].

The awaiter.await_ready() should be converted per [expr.await]/3

(3.6) await-ready is the expression e.await_ready(), contextually
      converted to bool.

gcc/cp/ChangeLog:

PR c++/99047
* coroutines.cc (expand_one_await_expression): If the
await_ready() expression is not a boolean then convert it
as required.

gcc/testsuite/ChangeLog:

PR c++/99047
* g++.dg/coroutines/pr99047.C: New test.
gcc/cp/coroutines.cc
gcc/testsuite/g++.dg/coroutines/pr99047.C [new file with mode: 0644]