From 123677c80297579de9f7f41430d76ff4f15f1d15 Mon Sep 17 00:00:00 2001 From: cuz Date: Mon, 2 Aug 2004 16:39:55 +0000 Subject: [PATCH] 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 --- src/cc65/expr.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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);