From 4ce28c0cd524bfcf235696b589027caea1e41fa8 Mon Sep 17 00:00:00 2001 From: cuz Date: Thu, 30 Aug 2001 08:17:06 +0000 Subject: [PATCH] Fixed problem with forward references in unnamed labels git-svn-id: svn://svn.cc65.org/cc65/trunk@853 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- src/ca65/ulabel.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/ca65/ulabel.c b/src/ca65/ulabel.c index 4faee3d21..7748f23dc 100644 --- a/src/ca65/ulabel.c +++ b/src/ca65/ulabel.c @@ -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); } } -- 2.39.5