From db0e6d01ad5dac14ab89ad75ae723891bcedebcc Mon Sep 17 00:00:00 2001 From: Richard Stallman Date: Wed, 3 Jun 1992 19:42:57 +0000 Subject: [PATCH] *** empty log message *** From-SVN: r1147 --- gcc/expr.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gcc/expr.c b/gcc/expr.c index 2f5e680288d..78193cba282 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -4858,7 +4858,15 @@ expand_builtin (exp, target, subtarget, mode, ignore) || TREE_CODE (TREE_TYPE (TREE_VALUE (arglist))) != REAL_TYPE) return CONST0_RTX (TYPE_MODE (TREE_TYPE (exp))); - /* Compute the argument. */ + /* Stabilize and compute the argument. */ + if (TREE_CODE (TREE_VALUE (arglist)) != VAR_DECL + && TREE_CODE (TREE_VALUE (arglist)) != PARM_DECL) + { + exp = copy_node (exp); + arglist = copy_node (arglist); + TREE_OPERAND (exp, 1) = arglist; + TREE_VALUE (arglist) = save_expr (TREE_VALUE (arglist)); + } op0 = expand_expr (TREE_VALUE (arglist), subtarget, VOIDmode, 0); /* Make a suitable register to place result in. */ -- 2.30.2