1
0
mirror of https://github.com/golang/go synced 2024-10-03 17:21:21 -06:00

clear output parameters

R=r
OCL=16345
CL=16345
This commit is contained in:
Ken Thompson 2008-10-01 20:00:58 -07:00
parent 5e92fb20b8
commit d015f896bb

View File

@ -20,6 +20,7 @@ compile(Node *fn)
Node nod1;
Prog *ptxt;
int32 lno;
Type *t;
if(newproc == N) {
newproc = nod(ONAME, N, N);
@ -56,6 +57,17 @@ if(throwreturn == N) {
curfn = fn;
dowidth(curfn->type);
if(curfn->type->outnamed) {
// add clearing of the output parameters
t = structfirst(&pl, getoutarg(curfn->type));
while(t != T) {
if(t->nname != N && t->nname->sym->name[0] != '_') {
curfn->nbody = list(nod(OAS, t->nname, N), curfn->nbody);
}
t = structnext(&pl);
}
}
walk(curfn);
if(nerrors != 0)
goto ret;