Fix: got into infinite loop
authorceriel <none@none>
Tue, 2 May 1995 12:23:28 +0000 (12:23 +0000)
committerceriel <none@none>
Tue, 2 May 1995 12:23:28 +0000 (12:23 +0000)
lang/m2/comp/enter.c

index d058fa2..8484c6e 100644 (file)
@@ -254,7 +254,15 @@ ImportEffects(idef, scope, flag)
        register t_def *df = idef;
        register t_type *tp;
 
-       while (df->df_kind & D_IMPORTED) {
+       while ((df->df_kind & D_IMPORTED) && df->imp_def != df) {
+               /* The second condition could occur on some (erroneous and
+                  obscure) input such as:
+                       IMPLEMENTATION MODULE Test;
+                       FROM X IMPORT XType, XType;
+                       END Test.
+                  when X does not exist.
+               */
+
                df = df->imp_def;
        }