summaryrefslogtreecommitdiff
path: root/src/cmd/gc/sinit.c
diff options
context:
space:
mode:
authorKen Thompson <ken@golang.org>2009-05-28 16:00:55 -0700
committerKen Thompson <ken@golang.org>2009-05-28 16:00:55 -0700
commit103de3e314847a7ec67c8ff2a26f7dfe3e79ffe9 (patch)
treeef3051f1ef10e216f04df89c1aa50f6648f8b091 /src/cmd/gc/sinit.c
parent627363e8a8fddda42af80877cfed1546f44d87cb (diff)
downloadgolang-103de3e314847a7ec67c8ff2a26f7dfe3e79ffe9.tar.gz
detect recursive initialization
R=r OCL=29544 CL=29544
Diffstat (limited to 'src/cmd/gc/sinit.c')
-rw-r--r--src/cmd/gc/sinit.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/cmd/gc/sinit.c b/src/cmd/gc/sinit.c
index b15061c2e..a6727e011 100644
--- a/src/cmd/gc/sinit.c
+++ b/src/cmd/gc/sinit.c
@@ -61,6 +61,8 @@ typeclass(Type *t)
void
initlin(Node* n)
{
+
+loop:
if(n == N)
return;
initlin(n->ninit);
@@ -84,8 +86,8 @@ initlin(Node* n)
case OLIST:
initlin(n->left);
- initlin(n->right);
- break;
+ n = n->right;
+ goto loop;
}
}