mirror of
https://github.com/cc65/cc65.git
synced 2025-01-26 17:36:57 +00:00
Fixed internal compiler error on invalid input code.
git-svn-id: svn://svn.cc65.org/cc65/trunk@3768 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
b8293aaf8a
commit
9601baf6ec
@ -1894,7 +1894,7 @@ static void parseadd (ExprDesc* Expr)
|
||||
Error ("Invalid operands for binary operator `+'");
|
||||
}
|
||||
|
||||
} else {
|
||||
} else {
|
||||
|
||||
/* lhs is a constant and rhs is not constant. Load rhs into
|
||||
* the primary.
|
||||
@ -1974,6 +1974,7 @@ static void parseadd (ExprDesc* Expr)
|
||||
} else {
|
||||
/* OOPS */
|
||||
Error ("Invalid operands for binary operator `+'");
|
||||
flags = CF_INT;
|
||||
}
|
||||
|
||||
/* Result is a rvalue in primary register */
|
||||
@ -2014,6 +2015,7 @@ static void parseadd (ExprDesc* Expr)
|
||||
} else {
|
||||
/* OOPS */
|
||||
Error ("Invalid operands for binary operator `+'");
|
||||
flags = CF_INT;
|
||||
}
|
||||
|
||||
/* Generate code for the add */
|
||||
@ -2052,6 +2054,7 @@ static void parseadd (ExprDesc* Expr)
|
||||
} else {
|
||||
/* OOPS */
|
||||
Error ("Invalid operands for binary operator `+'");
|
||||
flags = CF_INT;
|
||||
}
|
||||
|
||||
/* Generate code for the add */
|
||||
@ -2077,12 +2080,12 @@ static void parsesub (ExprDesc* Expr)
|
||||
*/
|
||||
{
|
||||
ExprDesc Expr2;
|
||||
unsigned flags; /* Operation flags */
|
||||
Type* lhst; /* Type of left hand side */
|
||||
Type* rhst; /* Type of right hand side */
|
||||
CodeMark Mark1; /* Save position of output queue */
|
||||
unsigned flags; /* Operation flags */
|
||||
Type* lhst; /* Type of left hand side */
|
||||
Type* rhst; /* Type of right hand side */
|
||||
CodeMark Mark1; /* Save position of output queue */
|
||||
CodeMark Mark2; /* Another position in the queue */
|
||||
int rscale; /* Scale factor for the result */
|
||||
int rscale; /* Scale factor for the result */
|
||||
|
||||
|
||||
/* Skip the MINUS token */
|
||||
@ -2090,7 +2093,6 @@ static void parsesub (ExprDesc* Expr)
|
||||
|
||||
/* Get the left hand side type, initialize operation flags */
|
||||
lhst = Expr->Type;
|
||||
flags = 0;
|
||||
rscale = 1; /* Scale by 1, that is, don't scale */
|
||||
|
||||
/* Remember the output queue position, then bring the value onto the stack */
|
||||
@ -2166,6 +2168,7 @@ static void parsesub (ExprDesc* Expr)
|
||||
} else {
|
||||
/* OOPS */
|
||||
Error ("Invalid operands for binary operator `-'");
|
||||
flags = CF_INT;
|
||||
}
|
||||
|
||||
/* Do the subtraction */
|
||||
@ -2216,6 +2219,7 @@ static void parsesub (ExprDesc* Expr)
|
||||
} else {
|
||||
/* OOPS */
|
||||
Error ("Invalid operands for binary operator `-'");
|
||||
flags = CF_INT;
|
||||
}
|
||||
|
||||
/* Generate code for the sub (the & is a hack here) */
|
||||
|
Loading…
x
Reference in New Issue
Block a user