]> git.sur5r.net Git - cc65/commitdiff
Fixed problem with forward references in unnamed labels
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 30 Aug 2001 08:17:06 +0000 (08:17 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 30 Aug 2001 08:17:06 +0000 (08:17 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@853 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/ca65/ulabel.c

index 4faee3d2187a8bcb427f551887cd2612841a163f..7748f23dca30d72265e8f8d1b0ed4ed806fc1924 100644 (file)
@@ -37,7 +37,7 @@
 #include "check.h"
 #include "filepos.h"
 #include "xmalloc.h"
-         
+
 /* ca65 */
 #include "error.h"
 #include "expr.h"
@@ -53,8 +53,8 @@
 
 
 /* Struct that describes an unnamed label */
-typedef struct ULabel_ ULabel;
-struct ULabel_ {
+typedef struct ULabel ULabel;
+struct ULabel {
     ULabel*            Prev;                   /* Pointer to previous node in list */
     ULabel*            Next;                   /* Pointer to next node in list */
     FilePos    Pos;                    /* Position of the label in the source */
@@ -145,14 +145,11 @@ ExprNode* ULabRef (int Which)
     } else {
        /* Forward reference. Create labels as needed */
        unsigned LabelNum = ULabDefCount + Which - 1;
-       while (Which > 0) {
-           if (L->Next == 0) {
-               NewULabel (0);
-           }
-           L = L->Next;
-           --Which;
-       }
-       /* Return an unnamed label expression */
+       while (LabelNum < ULabCount) {
+                   NewULabel (0);
+       }
+
+       /* Return an unnamed label expression */
                return ULabelExpr (LabelNum);
     }
 }