diff options
Diffstat (limited to 'src/cmd/gc/fmt.c')
-rw-r--r-- | src/cmd/gc/fmt.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/cmd/gc/fmt.c b/src/cmd/gc/fmt.c index ab81e6c88..35f01a5c2 100644 --- a/src/cmd/gc/fmt.c +++ b/src/cmd/gc/fmt.c @@ -168,7 +168,7 @@ Lconv(Fmt *fp) lno = a[i].incl->line - 1; // now print out start of this file } if(n == 0) - fmtprint(fp, "<epoch>"); + fmtprint(fp, "<unknown line number>"); return 0; } @@ -443,6 +443,9 @@ Zconv(Fmt *fp) fmtrune(fp, '\\'); fmtrune(fp, r); break; + case 0xFEFF: // BOM, basically disallowed in source code + fmtstrcpy(fp, "\\uFEFF"); + break; } } return 0; @@ -630,7 +633,7 @@ typefmt(Fmt *fp, Type *t) case TARRAY: if(t->bound >= 0) - return fmtprint(fp, "[%d]%T", (int)t->bound, t->type); + return fmtprint(fp, "[%lld]%T", t->bound, t->type); if(t->bound == -100) return fmtprint(fp, "[...]%T", t->type); return fmtprint(fp, "[]%T", t->type); @@ -1022,6 +1025,7 @@ static int opprec[] = { [ODOTTYPE] = 8, [ODOT] = 8, [OXDOT] = 8, + [OCALLPART] = 8, [OPLUS] = 7, [ONOT] = 7, @@ -1269,9 +1273,10 @@ exprfmt(Fmt *f, Node *n, int prec) case ODOTPTR: case ODOTINTER: case ODOTMETH: + case OCALLPART: exprfmt(f, n->left, nprec); if(n->right == N || n->right->sym == S) - fmtstrcpy(f, ".<nil>"); + return fmtstrcpy(f, ".<nil>"); return fmtprint(f, ".%hhS", n->right->sym); case ODOTTYPE: |