From a6eb7d076377db051e58d3656dd9e5adcb7f5c7d Mon Sep 17 00:00:00 2001 From: Greg King Date: Sun, 3 Jul 2016 07:07:09 -0400 Subject: [PATCH] Fixed how ca65 handles some debug info from cc65. 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 | 2 +- src/ca65/lineinfo.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/ca65/error.c b/src/ca65/error.c index 38195d669..69446b3fc 100644 --- a/src/ca65/error.c +++ b/src/ca65/error.c @@ -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: diff --git a/src/ca65/lineinfo.c b/src/ca65/lineinfo.c index 92fecec58..e6707dac4 100644 --- a/src/ca65/lineinfo.c +++ b/src/ca65/lineinfo.c @@ -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); + } } -- 2.39.5