Commit cb1897a5 authored by Shenghou Ma's avatar Shenghou Ma Committed by Minux Ma

cmd/gc: give an error if only one argument is given to complex()

Fixes #8501

Change-Id: I0dbbdded7f7924351c3d1841d60cb5c934b295b7
Reviewed-on: https://go-review.googlesource.com/2143Reviewed-by: 's avatarChris Manghane <cmang@golang.org>
parent 8fa0cf1d
......@@ -1233,6 +1233,10 @@ reswitch:
ok |= Erv;
if(count(n->list) == 1) {
typechecklist(n->list, Efnstruct);
if(n->list->n->op != OCALLFUNC && n->list->n->op != OCALLMETH) {
yyerror("invalid operation: complex expects two arguments");
goto error;
}
t = n->list->n->left->type;
if(t->outtuple != 2) {
yyerror("invalid operation: complex expects two arguments, %N returns %d results", n->list->n, t->outtuple);
......
// 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.
package p
type T struct {
f float64
}
var t T
func F() {
_ = complex(1.0) // ERROR "invalid operation|not enough arguments"
_ = complex(t.f) // ERROR "invalid operation|not enough arguments"
}
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