mirror of
https://github.com/cc65/cc65.git
synced 2024-12-24 11:31:31 +00:00
Std-functions are no longer inlined if they are unevaluated.
This commit is contained in:
parent
df07e23f2c
commit
903e84c24c
@ -593,7 +593,7 @@ static void FunctionCall (ExprDesc* Expr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Check for known standard functions and inline them */
|
/* Check for known standard functions and inline them */
|
||||||
if (Expr->Name != 0) {
|
if (Expr->Name != 0 && !ED_IsUneval (Expr)) {
|
||||||
int StdFunc = FindStdFunc ((const char*) Expr->Name);
|
int StdFunc = FindStdFunc ((const char*) Expr->Name);
|
||||||
if (StdFunc >= 0) {
|
if (StdFunc >= 0) {
|
||||||
/* Inline this function */
|
/* Inline this function */
|
||||||
|
@ -474,13 +474,13 @@ void ED_MarkForUneval (ExprDesc* Expr);
|
|||||||
/* Mark the expression as not to be evaluated */
|
/* Mark the expression as not to be evaluated */
|
||||||
|
|
||||||
#if defined(HAVE_INLINE)
|
#if defined(HAVE_INLINE)
|
||||||
INLINE int ED_MayBeUneval (const ExprDesc* Expr)
|
INLINE int ED_IsUneval (const ExprDesc* Expr)
|
||||||
/* Check if the expression may be uevaluated */
|
/* Check if the expression is not to be evaluated */
|
||||||
{
|
{
|
||||||
return (Expr->Flags & E_EVAL_UNEVAL) == E_EVAL_UNEVAL;
|
return (Expr->Flags & E_EVAL_UNEVAL) == E_EVAL_UNEVAL;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
# define ED_MayBeUneval(Expr) (((Expr)->Flags & E_EVAL_UNEVAL) == E_EVAL_UNEVAL)
|
# define ED_IsUneval(Expr) (((Expr)->Flags & E_EVAL_UNEVAL) == E_EVAL_UNEVAL)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(HAVE_INLINE)
|
#if defined(HAVE_INLINE)
|
||||||
|
Loading…
Reference in New Issue
Block a user