assignment count mismatch: 2 = 1. R=ken OCL=23534 CL=23534
diff --git a/src/cmd/gc/go.h b/src/cmd/gc/go.h index 461c00b..abb08eb 100644 --- a/src/cmd/gc/go.h +++ b/src/cmd/gc/go.h
@@ -185,6 +185,7 @@ uchar iota; // OLITERAL made from iota uchar embedded; // ODCLFIELD embedded type uchar colas; // OAS resulting from := + uchar diag; // already printed error about this // most nodes Node* left;
diff --git a/src/cmd/gc/walk.c b/src/cmd/gc/walk.c index 48ab2a6..99fe055 100644 --- a/src/cmd/gc/walk.c +++ b/src/cmd/gc/walk.c
@@ -534,8 +534,10 @@ } break; } - - yyerror("bad shape across assignment - cr=%d cl=%d\n", cr, cl); + if(l->diag == 0) { + l->diag = 1; + yyerror("assignment count mismatch: %d = %d", cl, cr); + } goto ret; case OBREAK: @@ -3083,7 +3085,10 @@ return n; badt: - yyerror("shape error across :="); + if(nl->diag == 0) { + nl->diag = 1; + yyerror("assignment count mismatch: %d = %d", cl, cr); + } return nl; }