diff --git a/src/asm/lexer.c b/src/asm/lexer.c index 45a44a03..e07553d3 100644 --- a/src/asm/lexer.c +++ b/src/asm/lexer.c @@ -1457,9 +1457,12 @@ static void readString(void) // We'll be staying in the string, so we can safely consume the char shiftChars(1); - // Handle CRLF (in multiline strings only, already handled above otherwise) - if (c == '\r' && peek(0) == '\n') { - shiftChars(1); + // Handle '\r' or '\n' (in multiline strings only, already handled above otherwise) + if (c == '\r' || c == '\n') { + /* Handle CRLF before nextLine() since shiftChars updates colNo */ + if (c == '\r' && peek(0) == '\n') + shiftChars(1); + nextLine(); c = '\n'; } diff --git a/test/asm/multi-line-strings.asm b/test/asm/multi-line-strings.asm index 9b77bfb1..e39635db 100644 --- a/test/asm/multi-line-strings.asm +++ b/test/asm/multi-line-strings.asm @@ -30,3 +30,5 @@ EMPTY3 EQUS """""" EMPTY4 EQUS """\ ; comment """ PRINTLN STRCAT("(", "{EMPTY1}", "{EMPTY2}", "{EMPTY3}", "{EMPTY4}", ")") + + warn "check the line number" diff --git a/test/asm/multi-line-strings.err b/test/asm/multi-line-strings.err index e69de29b..9f139531 100644 --- a/test/asm/multi-line-strings.err +++ b/test/asm/multi-line-strings.err @@ -0,0 +1,2 @@ +warning: multi-line-strings.asm(34): [-Wuser] + check the line number