diff mc-codegen.c @ 350:43099915f4c2

name table reconfigure continue...
author kono
date Fri, 02 Jul 2004 18:28:19 +0900
parents e77b3a7002ad
children 41ed77cb9c67
line wrap: on
line diff
--- a/mc-codegen.c	Fri Jul 02 14:14:24 2004 +0900
+++ b/mc-codegen.c	Fri Jul 02 18:28:19 2004 +0900
@@ -2319,7 +2319,6 @@
 	n->ty = type;  /* must be in global table/heap */
     if(type>0&&(car(type)==FUNCTION || car(type)==CODE)) {
 	if ((mode==GDECL)) {
-	    n->next = global_list; global_list = n;
 	    fcheck(n);
 	    return n;
 	    /* function and code segment are defined using fdecl/code_decl */
@@ -2373,9 +2372,13 @@
 	n->sc = nsc;
 	if (stmode==LDECL) {
 	    n = new_static_name(n->nm,'.');
-	    n->next = local_static_list; local_static_list = n;
+	    if (!n->next) {
+		n->next = local_static_list; local_static_list = n;
+	    }
 	} else {
-	    n->next = global_list; global_list = n;
+	    if (!n->next) {
+		n->next = global_list; global_list = n;
+	    }
 	}
 	gpc +=sz;
 	return n;