From 7a8dfe707bb29938b5109614d49623847fba81f1 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 11 Aug 2015 23:11:36 +0000 Subject: [PATCH] compiler: Check for EOF in malformed signatures. When parsing a malformed function declaration with invalid parameters, gccgo would infinitely loop looking for the end of the function declaration. Fixes golang/go#11530, golang/go#11531. Reviewed-on: https://go-review.googlesource.com/13065 From-SVN: r226795 --- gcc/go/gofrontend/MERGE | 2 +- gcc/go/gofrontend/parse.cc | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 2cbe25ce606b..5046fbbb559b 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -3b590ff53700963c1b8207a78594138e6a4e47f4 +55175f7ee0db2c1e68423216d7744be80071ed6c The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/gcc/go/gofrontend/parse.cc b/gcc/go/gofrontend/parse.cc index 7f7eba489c7d..211fd73b3c59 100644 --- a/gcc/go/gofrontend/parse.cc +++ b/gcc/go/gofrontend/parse.cc @@ -1045,7 +1045,8 @@ Parse::parameter_decl(bool parameters_have_names, { *mix_error = true; while (!this->peek_token()->is_op(OPERATOR_COMMA) - && !this->peek_token()->is_op(OPERATOR_RPAREN)) + && !this->peek_token()->is_op(OPERATOR_RPAREN) + && !this->peek_token()->is_eof()) this->advance_token(); } } -- 2.47.3