]> git.sur5r.net Git - cc65/commitdiff
In a function call for all parameters not covered by a prototype, convert
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Mon, 2 Aug 2004 16:39:55 +0000 (16:39 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Mon, 2 Aug 2004 16:39:55 +0000 (16:39 +0000)
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

index ea1de34a6780a85024968b3d8b0cfc6029685885..faf43a5a135e2086f752156eb277b5b0418b8aee 100644 (file)
@@ -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);