Przeglądaj źródła

Fix: parameter name same as function name not dealt with properly

ceriel 23 lat temu
rodzic
commit
910316cfde
1 zmienionych plików z 8 dodań i 2 usunięć
  1. 8 2
      lang/cem/cemcom.ansi/idf.c

+ 8 - 2
lang/cem/cemcom.ansi/idf.c

@@ -528,9 +528,15 @@ declare_formals(idf, fp)
 	/* When one of the formals has the same name as the function, 
 	   it hides the function def. Get it.
 	*/
-	if (se && se->se_idf == idf) {
-		df = df->next;
+	while (se) {
+		if (se->se_idf == idf) {
+			df = df->next;
+			break;
+		}
+		se = se->next;
 	}
+
+	se = stack_level_of(L_FORMAL1)->sl_entry;
 	
 	hasproto = df->df_type->tp_proto != 0;