diff options
author | Ken Thompson <ken@golang.org> | 2009-05-28 16:00:55 -0700 |
---|---|---|
committer | Ken Thompson <ken@golang.org> | 2009-05-28 16:00:55 -0700 |
commit | 103de3e314847a7ec67c8ff2a26f7dfe3e79ffe9 (patch) | |
tree | ef3051f1ef10e216f04df89c1aa50f6648f8b091 /src/cmd/gc/sinit.c | |
parent | 627363e8a8fddda42af80877cfed1546f44d87cb (diff) | |
download | golang-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.c | 6 |
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; } } |