mirror of
https://github.com/cc65/cc65.git
synced 2025-01-10 19:29:45 +00:00
Invalid flagged errors if token is missing
A missing factor in an expression causes an expected but missing token to be skipped, leading to invalid flagged errors in the following line: l = 3 + lda #$00 An error should be output for line 1, but not for line 2. Actually, both are flagged as errors: test.s(1): Error: Syntax error test.s(2): Error: Unexpected trailing garbage characters This patch (as proposed in issue #1634 by kugelfuhr) fixes this.
This commit is contained in:
parent
24c8de87c2
commit
3d0013ab30
@ -1226,11 +1226,11 @@ static ExprNode* Factor (void)
|
|||||||
SB_GetLen (&CurTok.SVal) == 1) {
|
SB_GetLen (&CurTok.SVal) == 1) {
|
||||||
/* A character constant */
|
/* A character constant */
|
||||||
N = GenLiteralExpr (TgtTranslateChar (SB_At (&CurTok.SVal, 0)));
|
N = GenLiteralExpr (TgtTranslateChar (SB_At (&CurTok.SVal, 0)));
|
||||||
|
NextTok ();
|
||||||
} else {
|
} else {
|
||||||
N = GenLiteral0 (); /* Dummy */
|
N = GenLiteral0 (); /* Dummy */
|
||||||
Error ("Syntax error");
|
Error ("Syntax error");
|
||||||
}
|
}
|
||||||
NextTok ();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return N;
|
return N;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user