Commit 1483747f authored by Jan Ziak's avatar Jan Ziak

cmd/gc: fix spurious 'not enough arguments to return' error

Fixes #6405

LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/72920046
parent cbe777b2
......@@ -1065,6 +1065,7 @@ reswitch:
goto reswitch;
}
typecheck(&n->left, Erv | Etype | Ecall |(top&Eproc));
n->diag |= n->left->diag;
l = n->left;
if(l->op == ONAME && l->etype != 0) {
if(n->isddd && l->etype != OAPPEND)
......@@ -2165,6 +2166,7 @@ typecheckaste(int op, Node *call, int isddd, Type *tstruct, NodeList *nl, char *
if(tstruct->broke)
goto out;
n = N;
if(nl != nil && nl->next == nil && (n = nl->n)->type != T)
if(n->type->etype == TSTRUCT && n->type->funarg) {
tn = n->type->type;
......@@ -2239,10 +2241,14 @@ out:
return;
notenough:
if(call != N)
yyerror("not enough arguments in call to %N", call);
else
yyerror("not enough arguments to %O", op);
if(n == N || !n->diag) {
if(call != N)
yyerror("not enough arguments in call to %N", call);
else
yyerror("not enough arguments to %O", op);
if(n != N)
n->diag = 1;
}
goto out;
toomany:
......
// errorcheck
// Copyright 2014 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Issue 6405: spurious 'not enough arguments to return' error
package p
func Open() (int, error) {
return OpenFile() // ERROR "undefined: OpenFile"
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment