From 103de3e314847a7ec67c8ff2a26f7dfe3e79ffe9 Mon Sep 17 00:00:00 2001 From: Ken Thompson Date: Thu, 28 May 2009 16:00:55 -0700 Subject: detect recursive initialization R=r OCL=29544 CL=29544 --- src/cmd/gc/sinit.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/cmd/gc/sinit.c') 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; } } -- cgit v1.2.3