From 3a08477ac574d22ace439cb7e6b93184d8f13b7c Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Tue, 3 Aug 1993 17:34:43 -0400 Subject: [PATCH] (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 --- gcc/calls.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 -- 2.30.2