Commit 767845b6 authored by Ken Thompson's avatar Ken Thompson

bug 125

R=r
OCL=26146
CL=26146
parent 48f6b516
......@@ -2220,6 +2220,10 @@ mapop(Node *n, int top)
fatal("mapop: unknown op %O", n->op);
case OMAKE:
cl = listcount(n->left);
if(cl > 1)
yyerror("too many arguments to make map");
if(top != Erv)
goto nottop;
......@@ -2232,8 +2236,9 @@ mapop(Node *n, int top)
break;
a = n->left; // hint
if(n->left == N)
if(cl != 1)
a = nodintconst(0);
r = a;
a = nodintconst(algtype(t->type)); // val algorithm
r = list(a, r);
......@@ -2427,6 +2432,10 @@ chanop(Node *n, int top)
fatal("chanop: unknown op %O", n->op);
case OMAKE:
cl = listcount(n->left);
if(cl > 1)
yyerror("too many arguments to make chan");
// newchan(elemsize int, elemalg int,
// hint int) (hmap *chan[any-1]);
......@@ -2434,12 +2443,12 @@ chanop(Node *n, int top)
if(t == T)
break;
if(n->left != N) {
a = nodintconst(0);
if(cl == 1) {
// async buf size
a = nod(OCONV, n->left, N);
a->type = types[TINT];
} else
a = nodintconst(0);
}
r = a;
a = nodintconst(algtype(t->type)); // elem algorithm
......@@ -2602,6 +2611,7 @@ arrayop(Node *n, int top)
Type *t, *tl;
Node *on;
Iter save;
int cl;
r = n;
switch(n->op) {
......@@ -2658,6 +2668,10 @@ arrayop(Node *n, int top)
return n;
case OMAKE:
cl = listcount(n->left);
if(cl > 2)
yyerror("too many arguments to make array");
// newarray(nel int, max int, width int) (ary []any)
t = fixarray(n->type);
if(t == T)
......
......@@ -125,9 +125,6 @@ bugs/bug117.go:9: illegal types for operand: RETURN
int
BUG: should compile
=========== bugs/bug122.go
BUG: compilation succeeds incorrectly
=========== bugs/bug125.go
BUG: errchk: command succeeded unexpectedly: 6g bugs/bug125.go
......@@ -268,6 +265,9 @@ fixedbugs/bug121.go:20: illegal types for operand: AS
I
*S
=========== fixedbugs/bug122.go
fixedbugs/bug122.go:6: too many arguments to make array
=========== fixedbugs/bug133.go
fixedbugs/bug133.dir/bug2.go:11: undefined DOT i on bug0.T
fixedbugs/bug133.dir/bug2.go:11: illegal types for operand: RETURN
......
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