]> git.sur5r.net Git - cc65/commitdiff
Be sure to generate line info for all segments.
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 1 Aug 2010 13:52:06 +0000 (13:52 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 1 Aug 2010 13:52:06 +0000 (13:52 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@4778 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/ld65/bin.c
src/ld65/o65.c

index 7d3f15c374cfa9580da7b442f8163dec7fb42b12..c5386114abe304750c7f21236364bb3cae7e6789 100644 (file)
@@ -200,6 +200,9 @@ static void BinWriteMem (BinDesc* D, Memory* M)
                 Addr = NewAddr;
             }
 
+            /* Relocate line information for this segment */
+           RelocLineInfo (S->Seg);
+
         } else if (S->Load == M) {
 
             /* Handle ALIGN_LOAD */
@@ -221,7 +224,6 @@ static void BinWriteMem (BinDesc* D, Memory* M)
         */
                if (DoWrite) {
             unsigned long P = ftell (D->F);
-           RelocLineInfo (S->Seg);
             S->Seg->FillVal = M->FillVal;
            SegWrite (D->F, S->Seg, BinWriteExpr, D);
             PrintNumVal ("Wrote", (unsigned long) (ftell (D->F) - P));
index 6f31909e4ef0bc2db5e2fc6f51c095f3c0e5d98b..87d3bc7d691516d4f98ef40668e1276eedc56bdd 100644 (file)
@@ -783,12 +783,14 @@ static void O65WriteSeg (O65Desc* D, SegDesc** Seg, unsigned Count, int DoWrite)
        /* Get the segment from the list node */
                S = Seg [I];
 
+        /* Relocate line info for this segment */
+        RelocLineInfo (S->Seg);
+
        /* Keep the user happy */
        Print (stdout, 1, "    Writing `%s'\n", GetString (S->Name));
 
        /* Write this segment */
                if (DoWrite) {
-                   RelocLineInfo (S->Seg);
                    SegWrite (D->F, S->Seg, O65WriteExpr, D);
                }