]> git.sur5r.net Git - cc65/commitdiff
Make the error message for large alignments more descriptive. Don't use the
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Wed, 28 Dec 2011 16:00:16 +0000 (16:00 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Wed, 28 Dec 2011 16:00:16 +0000 (16:00 +0000)
real number of fill bytes for an alignment, we didn't accept anyway.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5340 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/ca65/segment.c

index a1c2aed27d9f26366ed23e7f5370121527503d07..00ac6234e3b2ff91cf44ddf86c336ab59552c5c3 100644 (file)
@@ -292,7 +292,14 @@ void SegAlign (unsigned long Alignment, int FillVal)
      */
     CombinedAlignment = LeastCommonMultiple (ActiveSeg->Align, Alignment);
     if (CombinedAlignment > MAX_ALIGNMENT) {
-        Error ("Combined alignment for active segment exceeds 0x10000");
+        Error ("Combined alignment for active segment is %lu which exceeds %lu",
+               CombinedAlignment, MAX_ALIGNMENT);
+
+        /* Avoid creating large fills for an object file that is thrown away 
+         * later.
+         */
+        Count = 1;
+
     } else {
         ActiveSeg->Align = CombinedAlignment;
 
@@ -301,12 +308,12 @@ void SegAlign (unsigned long Alignment, int FillVal)
             Warning (0, "Combined alignment is suspiciously large (%lu)",
                      CombinedAlignment);
         }
-    }
 
+        /* Calculate the number of fill bytes */
+        Count = AlignCount (ActiveSeg->PC, Alignment) - ActiveSeg->PC;
 
+    }
 
-    /* Calculate the number of fill bytes */
-    Count = AlignCount (ActiveSeg->PC, Alignment) - ActiveSeg->PC;
 
     /* Emit the data or a fill fragment */
     if (FillVal != -1) {