gc: distinguish fatal compiler bug from error+exit

R=ken2
CC=golang-dev
https://golang.org/cl/902044
diff --git a/src/cmd/gc/typecheck.c b/src/cmd/gc/typecheck.c
index 65c2384..8c8646e 100644
--- a/src/cmd/gc/typecheck.c
+++ b/src/cmd/gc/typecheck.c
@@ -1709,7 +1709,7 @@
 					prefix = " in ";
 				else
 					desc = "";
-				yyerror("implicit assignment of %T field '%s'%s%s", t, s->name, prefix, desc);
+				yyerror("implicit assignment of unexported field '%s' of %T%s%s", s->name, t, prefix, desc);
 				goto no;
 			}
 			if(!exportassignok(f->type, desc))
@@ -1935,7 +1935,7 @@
 				}
 				s = f->sym;
 				if(s != nil && !exportname(s->name) && s->pkg != localpkg)
-					yyerror("implicit assignment of %T field '%s' in struct literal", t, s->name);
+					yyerror("implicit assignment of unexported field '%s' in %T literal", s->name, t);
 				ll->n = typecheckconv(nil, ll->n, f->type, 0, "field value");
 				ll->n = nod(OKEY, newname(f->sym), ll->n);
 				ll->n->left->typecheck = 1;