From: Ian Lance Taylor Date: Mon, 15 Dec 2014 17:12:26 +0000 (+0000) Subject: re PR go/61253 (gccgo: spurious "error: expected '<-' or '='" [GoSmith]) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cb3eb3dce752b4a3f2cbd457ae10c6b67cd5085e;p=gcc.git re PR go/61253 (gccgo: spurious "error: expected '<-' or '='" [GoSmith]) PR go/61253 compiler: Support RecvStmt = ExpressionList "=" RecvExpr. From-SVN: r218753 --- diff --git a/gcc/go/gofrontend/parse.cc b/gcc/go/gofrontend/parse.cc index 8e3aa3ba0fb..3b5ede542a5 100644 --- a/gcc/go/gofrontend/parse.cc +++ b/gcc/go/gofrontend/parse.cc @@ -5031,6 +5031,16 @@ Parse::send_or_recv_stmt(bool* is_send, Expression** channel, Expression** val, e = Expression::make_receive(*channel, (*channel)->location()); } + if (!saw_comma && this->peek_token()->is_op(OPERATOR_COMMA)) + { + this->advance_token(); + // case v, e = <-c: + if (!e->is_sink_expression()) + *val = e; + e = this->expression(PRECEDENCE_NORMAL, true, true, NULL, NULL); + saw_comma = true; + } + if (this->peek_token()->is_op(OPERATOR_EQ)) { if (!this->advance_token()->is_op(OPERATOR_CHANOP))