From: Richard Kenner Date: Fri, 6 May 1994 17:32:34 +0000 (-0400) Subject: (assign_parms): Use expr_size when appropriate. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1fd3ef7f65b9a12b392c889568cbcde92abe5f5b;p=gcc.git (assign_parms): Use expr_size when appropriate. From-SVN: r7228 --- diff --git a/gcc/function.c b/gcc/function.c index cc9fa506162..596916260f3 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -3546,21 +3546,14 @@ assign_parms (fndecl, second_time) if (TYPE_SIZE (type) == 0 || TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST) - { - /* This is a variable sized object. */ - /* ??? Can we use expr_size here? */ - rtx size_rtx = expand_expr (size_in_bytes (type), NULL_RTX, - TYPE_MODE (sizetype), 0); - - copy = gen_rtx (MEM, BLKmode, - allocate_dynamic_stack_space (size_rtx, NULL_RTX, - TYPE_ALIGN (type))); - } + /* This is a variable sized object. */ + copy = gen_rtx (MEM, BLKmode, + allocate_dynamic_stack_space + (expand_size (parm), NULL_RTX, + TYPE_ALIGN (type))); else - { - int size = int_size_in_bytes (type); - copy = assign_stack_temp (TYPE_MODE (type), size, 1); - } + copy = assign_stack_temp (TYPE_MODE (type), + int_size_in_bytes (type), 1); store_expr (parm, copy, 0); emit_move_insn (parmreg, XEXP (copy, 0));