[gcc(refs/users/guojiufu/heads/personal-branch)] coroutines: co_returns are statements, not expressions.

Jiu Fu Guo guojiufu@gcc.gnu.org
Wed Jun 10 03:42:30 GMT 2020


https://gcc.gnu.org/g:608832716e27ca356ee38d14ae30b3ab525884ea

commit 608832716e27ca356ee38d14ae30b3ab525884ea
Author: Iain Sandoe <iain@sandoe.co.uk>
Date:   Fri Jun 5 15:09:39 2020 +0100

    coroutines: co_returns are statements, not expressions.
    
    This corrects an error in the CO_RETURN_EXPR tree
    class.
    
    gcc/cp/ChangeLog:
    
            * cp-tree.def (CO_RETURN_EXPR): Correct the class
            to use tcc_statement.

Diff:
---
 gcc/cp/cp-tree.def | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gcc/cp/cp-tree.def b/gcc/cp/cp-tree.def
index 1454802bf68..99851eb780f 100644
--- a/gcc/cp/cp-tree.def
+++ b/gcc/cp/cp-tree.def
@@ -594,9 +594,9 @@ DEFTREECODE (CO_YIELD_EXPR, "co_yield", tcc_expression, 2)
 /* The co_return expression is used to support coroutines.
 
    Op0 is the original expr, can be void (for use in diagnostics)
-   Op2 is the promise return_xxxx call for Op0. */
+   Op1 is the promise return_xxxx call for for the expression given. */
 
-DEFTREECODE (CO_RETURN_EXPR, "co_return", tcc_expression, 2)
+DEFTREECODE (CO_RETURN_EXPR, "co_return", tcc_statement, 2)
 
 /*
 Local variables:


More information about the Gcc-cvs mailing list