case OCONVIFACE:
case OCONVNOP:
case OARRAYBYTESTR:
+ case OSTRARRAYBYTE:
case ORUNESTR:
if(n->type == T || n->type->sym == S)
fmtprint(f, "(%T)(", n->type);
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)
{
Node *n;
char *s;
+ int c;
n = va_arg(fp->args, Node*);
- if(n->ullman != 0)
+
+ c = fp->flags&FmtShort;
+
+ if(!c && n->ullman != 0)
fmtprint(fp, " u(%d)", n->ullman);
- if(n->addable != 0)
+ if(!c && n->addable != 0)
fmtprint(fp, " a(%d)", n->addable);
- if(n->vargen != 0)
+ if(!c && n->vargen != 0)
fmtprint(fp, " g(%d)", n->vargen);
if(n->lineno != 0)
fmtprint(fp, " l(%d)", n->lineno);
- if(n->xoffset != BADWIDTH)
+ if(!c && n->xoffset != BADWIDTH)
fmtprint(fp, " x(%lld%+d)", n->xoffset, n->stkdelta);
if(n->class != 0) {
if(n->funcdepth != 0)
fmtprint(fp, " f(%d)", n->funcdepth);
- if(n->typecheck != 0)
+ if(n->noescape != 0)
+ fmtprint(fp, " ne(%d)", n->noescape);
+
+ if(!c && n->typecheck != 0)
fmtprint(fp, " tc(%d)", n->typecheck);
- if(n->dodata != 0)
+ if(!c && n->dodata != 0)
fmtprint(fp, " dd(%d)", n->dodata);
if(n->isddd != 0)
if(n->implicit != 0)
fmtprint(fp, " implicit(%d)", n->implicit);
- if(n->pun != 0)
+ if(!c && n->pun != 0)
fmtprint(fp, " pun(%d)", n->pun);
- if(n->used != 0)
+ if(!c && n->used != 0)
fmtprint(fp, " used(%d)", n->used);
return 0;
}
switch(n->op) {
default:
- fmtprint(fp, "%O%J", n->op, n);
+ if (fp->flags & FmtShort)
+ fmtprint(fp, "%O%hJ", n->op, n);
+ else
+ fmtprint(fp, "%O%J", n->op, n);
break;
case ONAME:
case ONONAME:
if(n->sym == S) {
- fmtprint(fp, "%O%J", n->op, n);
+ if (fp->flags & FmtShort)
+ fmtprint(fp, "%O%hJ", n->op, n);
+ else
+ fmtprint(fp, "%O%J", n->op, n);
break;
}
- fmtprint(fp, "%O-%S G%d%J", n->op,
- n->sym, n->vargen, n);
+ if (fp->flags & FmtShort)
+ fmtprint(fp, "%O-%S%hJ", n->op, n->sym, n);
+ else
+ fmtprint(fp, "%O-%S%J", n->op, n->sym, n);
goto ptyp;
case OREGISTER: