diff options
author | Roger Sayle <roger@eyesopen.com> | 2003-09-09 19:20:42 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2003-09-09 19:20:42 +0000 |
commit | 892955bff08d660ba36d42e32f3b7a0c7d3acd61 (patch) | |
tree | 823a28a2d46337361bda4fb8b420c47fe0f5c672 /gcc/builtins.c | |
parent | 086a4bd7ddda8e5ac0faeee217f6ff5564bb1b4f (diff) | |
download | gcc-892955bff08d660ba36d42e32f3b7a0c7d3acd61.zip gcc-892955bff08d660ba36d42e32f3b7a0c7d3acd61.tar.gz gcc-892955bff08d660ba36d42e32f3b7a0c7d3acd61.tar.bz2 |
builtins.c (fold_builtin_cabs): Protect the complex argument against multiple evaluation when...
* builtins.c (fold_builtin_cabs): Protect the complex argument
against multiple evaluation when optimizing cabs* into sqrt*.
From-SVN: r71242
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r-- | gcc/builtins.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c index 290fac49..92e6a70 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -5718,6 +5718,8 @@ fold_builtin_cabs (tree fndecl, tree arglist, tree type) { tree rpart, ipart, result, arglist; + arg = save_expr (arg); + rpart = fold (build1 (REALPART_EXPR, type, arg)); ipart = fold (build1 (IMAGPART_EXPR, type, arg)); |