diff options
| author | Russ Cox <rsc@golang.org> | 2010-06-08 18:50:02 -0700 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2010-06-08 18:50:02 -0700 |
| commit | 0b814afd0a2fa1dded3eaf4d2f79b20438842955 (patch) | |
| tree | 19d1ab733d194831a2bf78d352fc92bb71e86f7a /src/cmd/gc/closure.c | |
| parent | 11704e355aa8f39669a36fe56c01d17deab60658 (diff) | |
| download | golang-0b814afd0a2fa1dded3eaf4d2f79b20438842955.tar.gz | |
gc: new typechecking rules
* Code for assignment, conversions now mirrors spec.
* Changed some snprint -> smprint.
* Renamed runtime functions to separate
interface conversions from type assertions:
convT2I, assertI2T, etc.
* Correct checking of \U sequences.
Fixes issue 840.
Fixes issue 830.
Fixes issue 778.
R=ken2
CC=golang-dev
http://codereview.appspot.com/1303042
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; |
