summaryrefslogtreecommitdiff
path: root/src/cmd/gc/go.y
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/gc/go.y')
-rw-r--r--src/cmd/gc/go.y24
1 files changed, 3 insertions, 21 deletions
diff --git a/src/cmd/gc/go.y b/src/cmd/gc/go.y
index e323276c8..5ed7ed09c 100644
--- a/src/cmd/gc/go.y
+++ b/src/cmd/gc/go.y
@@ -1245,33 +1245,15 @@ Bfntype:
fnlitdcl:
fntype
{
- markdclstack(); // save dcl stack and revert to block0
+ markdcl();
$$ = $1;
- funcargs($$);
+ funclit0($$);
}
fnliteral:
fnlitdcl '{' ostmt_list '}'
{
- popdcl();
-
- vargen++;
- snprint(namebuf, sizeof(namebuf), "_f%.3ld", vargen);
-
- $$ = newname(lookup(namebuf));
- addvar($$, $1, PFUNC);
-
- {
- Node *n;
-
- n = nod(ODCLFUNC, N, N);
- n->nname = $$;
- n->type = $1;
- n->nbody = $3;
- if(n->nbody == N)
- n->nbody = nod(ORETURN, N, N);
- compile(n);
- }
+ $$ = funclit1($1, $3);
}
fnbody: