re PR go/64198 (ICE in gofrontend)
authorIan Lance Taylor <ian@gcc.gnu.org>
Mon, 8 Dec 2014 18:05:30 +0000 (18:05 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Mon, 8 Dec 2014 18:05:30 +0000 (18:05 +0000)
PR go/64198
compiler: Don't crash on invalid ++.

From-SVN: r218485

gcc/go/gofrontend/parse.cc

index 57310250c79d88c28e38dd583d59b400d7bfad09..8e3aa3ba0fb6a59e28197346889d422a49e7bc93 100644 (file)
@@ -3190,9 +3190,12 @@ Parse::call(Expression* func)
   if (token->is_op(OPERATOR_COMMA))
     token = this->advance_token();
   if (!token->is_op(OPERATOR_RPAREN))
-    error_at(this->location(), "missing %<)%>");
-  else
-    this->advance_token();
+    {
+      error_at(this->location(), "missing %<)%>");
+      if (!this->skip_past_error(OPERATOR_RPAREN))
+       return Expression::make_error(this->location());
+    }
+  this->advance_token();
   if (func->is_error_expression())
     return func;
   return Expression::make_call(func, args, is_varargs, func->location());