]> git.sur5r.net Git - cc65/commitdiff
Fixed how ca65 handles some debug info from cc65.
authorGreg King <gregdk@users.sf.net>
Sun, 3 Jul 2016 11:07:09 +0000 (07:07 -0400)
committerGreg King <gregdk@users.sf.net>
Sun, 3 Jul 2016 11:07:09 +0000 (07:07 -0400)
ca65 used to claim that an assembler error/warning was found on a C code line; and, that an Assembly line is only indirectly related to it.
Now, ca65 says that the Assembly line has the problem; and, that the Assembly line was produced from the C line.

src/ca65/error.c
src/ca65/lineinfo.c

index 38195d6690f1c3cb6efc7b70afa0035a4668fc42..69446b3fc0d9e76b98641c169559ed2658bb0e5e 100644 (file)
@@ -144,7 +144,7 @@ static void AddNotifications (const Collection* LineInfos)
                 break;
 
             case LI_TYPE_EXT:
-                Msg = "Assembler code generated from this line";
+                Msg = "Assembly code generated from this line";
                 break;
 
             case LI_TYPE_MACRO:
index 92fecec58951a91780cf458faac8065475951fb7..e6707dac4214ce03d56c61789682735135b1f3ec 100644 (file)
@@ -368,6 +368,14 @@ void NewAsmLine (void)
 
     /* Start a new line using the current line info */
     AsmLineInfo = StartLine (&CurTok.Pos, LI_TYPE_ASM, 0);
+
+    /* If the first LineInfo in the list came from a .dbg line, then we want
+    ** errors and warnings to show it as an additional note, not as the primary
+    ** line.  Therefore, swap the first two LineInfo items.
+    */
+    if (GetLineInfoType (CollAtUnchecked (&CurLineInfo, 0)) == LI_TYPE_EXT) {
+        CollMove (&CurLineInfo, 1, 0);
+    }
 }