This patch from Chris Manghane fixes the Go frontend error reporting for invalid builtin calls, by not losing track of whether the call is erroneous. This fixes https://golang.org/issue/11561. Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu. Committed to mainline.
Ian
Index: gcc/go/gofrontend/MERGE =================================================================== --- gcc/go/gofrontend/MERGE (revision 226456) +++ gcc/go/gofrontend/MERGE (working copy) @@ -1,4 +1,4 @@ -bc4dda16f8686ab6e7335adfdfd2c6cc81cb2eb5 +2bf7c643a1d2f8503070c8e6cb87852026e32400 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. Index: gcc/go/gofrontend/expressions.cc =================================================================== --- gcc/go/gofrontend/expressions.cc (revision 226122) +++ gcc/go/gofrontend/expressions.cc (working copy) @@ -8499,7 +8499,8 @@ Call_expression::do_lower(Gogo* gogo, Na { if (!this->fn_->type()->is_error()) this->report_error(_("expected function")); - return Expression::make_error(loc); + this->set_is_error(); + return this; } // Handle an argument which is a call to a function which returns