diff options
author | Russ Cox <rsc@golang.org> | 2010-01-18 17:00:38 -0800 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2010-01-18 17:00:38 -0800 |
commit | c73b5780e421d799068bef524a6a87bf580e3bb5 (patch) | |
tree | 4a6ff7681e484e45c73fb1a37799e5295d2b2fd1 /src/cmd/gc/sinit.c | |
parent | 7df75e392ba90403b9d4d11ab7f692b86ee73a49 (diff) | |
download | golang-c73b5780e421d799068bef524a6a87bf580e3bb5.tar.gz |
gc: multiple return value at top-level invoked multiple times
Fixes issue 402.
R=ken2
CC=golang-dev
http://codereview.appspot.com/186214
Diffstat (limited to 'src/cmd/gc/sinit.c')
-rw-r--r-- | src/cmd/gc/sinit.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/cmd/gc/sinit.c b/src/cmd/gc/sinit.c index b1160d3d4..1b618fddb 100644 --- a/src/cmd/gc/sinit.c +++ b/src/cmd/gc/sinit.c @@ -90,12 +90,18 @@ init1(Node *n, NodeList **out) break; case OAS2FUNC: + if(n->defn->initorder) + break; + n->defn->initorder = 1; for(l=n->defn->rlist; l; l=l->next) init1(l->n, out); *out = list(*out, n->defn); break; case OAS2MAPR: + if(n->defn->initorder) + break; + n->defn->initorder = 1; for(l=n->defn->rlist; l; l=l->next) init1(l->n, out); *out = list(*out, n->defn); |