From: ian Date: Mon, 15 Dec 2014 17:12:26 +0000 (+0000) Subject: PR go/61253 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5e1f0c657068cbeba049ca4c70109b27b6fca506;p=thirdparty%2Fgcc.git PR go/61253 compiler: Support RecvStmt = ExpressionList "=" RecvExpr. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218753 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/go/gofrontend/parse.cc b/gcc/go/gofrontend/parse.cc index 8e3aa3ba0fb6..3b5ede542a5d 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))