summaryrefslogtreecommitdiff
path: root/src/cmd/gc/closure.c
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2011-07-27 19:31:11 -0400
committerRuss Cox <rsc@golang.org>2011-07-27 19:31:11 -0400
commitf310dca44c6aef5f54b0a7a0cd1f0a0a5cc57376 (patch)
tree8fb33abca5e6b16c4fbd272229db4f79379b66ac /src/cmd/gc/closure.c
parent1d817a6b164a7736a7b80a52603c0e2b67821a85 (diff)
downloadgo-f310dca44c6aef5f54b0a7a0cd1f0a0a5cc57376.tar.gz
gc: top-level closure bug
Fixes issue 2055. R=ken2 CC=golang-dev http://codereview.appspot.com/4816059
Diffstat (limited to 'src/cmd/gc/closure.c')
-rw-r--r--src/cmd/gc/closure.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/cmd/gc/closure.c b/src/cmd/gc/closure.c
index 7e7b40526..1261eefb7 100644
--- a/src/cmd/gc/closure.c
+++ b/src/cmd/gc/closure.c
@@ -84,6 +84,11 @@ typecheckclosure(Node *func, int top)
oldfn = curfn;
typecheck(&func->ntype, Etype);
func->type = func->ntype->type;
+ if(curfn == nil) {
+ xtop = list(xtop, func);
+ return;
+ }
+
if(func->type != T) {
curfn = func;
typechecklist(func->nbody, Etop);