fix casting arguments to parameter type

This commit is contained in:
pommicket 2022-02-12 23:44:48 -05:00
parent 29a92afcf2
commit 8c82a83778
2 changed files with 6 additions and 1 deletions

View file

@ -12,6 +12,7 @@ long fibonacci(long x) {
}
int main(int argc, char **argv) {
return 1 || -0.1;
double x = 3.5;
return factorial(x);
}

View file

@ -2803,8 +2803,12 @@ function parse_expression
:call_args_loop
if *1p == SYMBOL_RPAREN goto call_args_loop_end
n = token_next_semicolon_comma_rbracket(p)
*1out = EXPRESSION_CAST ; generate cast to proper argument type
arg_type = out + 4
out += 8
b = out + 4
out = parse_expression(p, n, out)
*4arg_type = type_create_copy(*4b)
b = types + param_type
if *1b == 0 goto arg_is_varargs ; reached the end of arguments (so presumably this function has varargs)
; set argument type to parameter type. this is necessary because: