aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimplify.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2018-05-02 07:59:34 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2018-05-02 07:59:34 +0000
commitb18f161d55481899b792b7fde13ce1e91013fbca (patch)
tree5a680152a6f7498a167f9d0c50809c0041c83192 /gcc/gimplify.c
parent014dcf477d1504e3259a901fc9ebc4f091cf07f6 (diff)
downloadgcc-b18f161d55481899b792b7fde13ce1e91013fbca.zip
gcc-b18f161d55481899b792b7fde13ce1e91013fbca.tar.gz
gcc-b18f161d55481899b792b7fde13ce1e91013fbca.tar.bz2
re PR middle-end/85567 (internal compiler error: in gimplify_modify_expr, at gimplify.c:5797 when using sincos())
2018-05-02 Richard Biener <rguenther@suse.de> PR middle-end/85567 * gimplify.c (gimplify_save_expr): When in SSA form allow SAVE_EXPRs to compute to SSA vars. * gcc.dg/torture/pr85567.c: New testcase. From-SVN: r259826
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r--gcc/gimplify.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index d27aae2..9942afd 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -5931,8 +5931,11 @@ gimplify_save_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p)
}
else
/* The temporary may not be an SSA name as later abnormal and EH
- control flow may invalidate use/def domination. */
- val = get_initialized_tmp_var (val, pre_p, post_p, false);
+ control flow may invalidate use/def domination. When in SSA
+ form then assume there are no such issues and SAVE_EXPRs only
+ appear via GENERIC foldings. */
+ val = get_initialized_tmp_var (val, pre_p, post_p,
+ gimple_in_ssa_p (cfun));
TREE_OPERAND (*expr_p, 0) = val;
SAVE_EXPR_RESOLVED_P (*expr_p) = 1;