diff options
author | Richard Biener <rguenther@suse.de> | 2018-05-02 07:59:34 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2018-05-02 07:59:34 +0000 |
commit | b18f161d55481899b792b7fde13ce1e91013fbca (patch) | |
tree | 5a680152a6f7498a167f9d0c50809c0041c83192 /gcc/gimplify.c | |
parent | 014dcf477d1504e3259a901fc9ebc4f091cf07f6 (diff) | |
download | gcc-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.c | 7 |
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; |