From: cuz Date: Mon, 2 Aug 2004 16:39:55 +0000 (+0000) Subject: In a function call for all parameters not covered by a prototype, convert X-Git-Tag: V2.12.0~664 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=123677c80297579de9f7f41430d76ff4f15f1d15;p=cc65 In a function call for all parameters not covered by a prototype, convert arrays to pointer to first element, and functions to pointer to function. git-svn-id: svn://svn.cc65.org/cc65/trunk@3169 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- diff --git a/src/cc65/expr.c b/src/cc65/expr.c index ea1de34a6..faf43a5a1 100644 --- a/src/cc65/expr.c +++ b/src/cc65/expr.c @@ -424,12 +424,21 @@ static unsigned FunctionParamList (FuncDesc* Func) */ Flags = CF_NONE; if (!Ellipsis) { + /* Convert the argument to the parameter type if needed */ TypeConversion (&Expr, Param->Type); /* If we have a prototype, chars may be pushed as chars */ Flags |= CF_FORCECHAR; - } + + } else { + + /* No prototype available. Convert array to "pointer to first + * element", and function to "pointer to function". + */ + Param->Type = PtrConversion (Param->Type) + + } /* Load the value into the primary if it is not already there */ LoadExpr (Flags, &Expr);