From c73b5780e421d799068bef524a6a87bf580e3bb5 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Mon, 18 Jan 2010 17:00:38 -0800 Subject: gc: multiple return value at top-level invoked multiple times Fixes issue 402. R=ken2 CC=golang-dev http://codereview.appspot.com/186214 --- src/cmd/gc/sinit.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/cmd/gc/sinit.c') 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); -- cgit v1.2.3