From: Richard Kenner Date: Tue, 3 Aug 1993 21:34:43 +0000 (-0400) Subject: (store_one_arg): Don't pass ARG->STACK as TARGET if it is a different X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3a08477ac574d22ace439cb7e6b93184d8f13b7c;p=gcc.git (store_one_arg): Don't pass ARG->STACK as TARGET if it is a different mode than the expression (i.e., a promoted mode). From-SVN: r5063 --- diff --git a/gcc/calls.c b/gcc/calls.c index 8188a6e2689..c776dd93917 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -2805,7 +2805,10 @@ store_one_arg (arg, argblock, may_be_alloca, variable_size, fndecl, if (arg->pass_on_stack) stack_arg_under_construction++; #endif - arg->value = expand_expr (pval, partial ? NULL_RTX : arg->stack, + arg->value = expand_expr (pval, + (partial + || TYPE_MODE (TREE_TYPE (pval)) != arg->mode) + ? NULL_RTX : arg->stack, VOIDmode, 0); /* If we are promoting object (or for any other reason) the mode