diff options
Diffstat (limited to 'src/cmd/gc/closure.c')
| -rw-r--r-- | src/cmd/gc/closure.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/cmd/gc/closure.c b/src/cmd/gc/closure.c index c194a0df3..a24a03a49 100644 --- a/src/cmd/gc/closure.c +++ b/src/cmd/gc/closure.c @@ -119,6 +119,7 @@ walkclosure(Node *func, NodeList **init) Node *xtype, *v, *addr, *xfunc, *call, *clos; NodeList *l, *in; static int closgen; + char *p; /* * wrap body in external function @@ -134,8 +135,9 @@ walkclosure(Node *func, NodeList **init) if(v->op == 0) continue; addr = nod(ONAME, N, N); - snprint(namebuf, sizeof namebuf, "&%s", v->sym->name); - addr->sym = lookup(namebuf); + p = smprint("&%s", v->sym->name); + addr->sym = lookup(p); + free(p); addr->ntype = nod(OIND, typenod(v->type), N); addr->class = PPARAM; addr->addable = 1; |
