diff options
Diffstat (limited to 'src/cmd/gc/print.c')
-rw-r--r-- | src/cmd/gc/print.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/cmd/gc/print.c b/src/cmd/gc/print.c index e88e0f844..5913e848a 100644 --- a/src/cmd/gc/print.c +++ b/src/cmd/gc/print.c @@ -78,6 +78,7 @@ exprfmt(Fmt *f, Node *n, int prec) case OTPAREN: case OINDEX: case OINDEXMAP: + case OPAREN: nprec = 7; break; @@ -134,6 +135,10 @@ exprfmt(Fmt *f, Node *n, int prec) fmtprint(f, "(node %O)", n->op); break; + case OPAREN: + fmtprint(f, "(%#N)", n->left); + break; + case OREGISTER: fmtprint(f, "%R", n->val.u.reg); break; @@ -404,6 +409,7 @@ exprfmt(Fmt *f, Node *n, int prec) case OCONVIFACE: case OCONVNOP: case OARRAYBYTESTR: + case OSTRARRAYBYTE: case ORUNESTR: if(n->type == T || n->type->sym == S) fmtprint(f, "(%T)(", n->type); @@ -445,8 +451,28 @@ exprfmt(Fmt *f, Node *n, int prec) break; case OMAKEMAP: + case OMAKECHAN: fmtprint(f, "make(%#T)", n->type); break; + + // Some statements + + case ODCL: + fmtprint(f, "var %S %#T", n->left->sym, n->left->type); + break; + + case ORETURN: + fmtprint(f, "return "); + exprlistfmt(f, n->list); + break; + + case OPROC: + fmtprint(f, "go %#N", n->left); + break; + + case ODEFER: + fmtprint(f, "defer %#N", n->left); + break; } if(prec > nprec) |