diff options
author | Jakub Jelinek <jakub@redhat.com> | 2017-06-27 09:22:14 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2017-06-27 09:22:14 +0200 |
commit | 00296d7f68fe3f6ce378fed88eab9999af3a2449 (patch) | |
tree | 6e7f1bf44e0d32edb9abff6bcb8c280997b28bf9 /gcc/gimple-fold.c | |
parent | 0c41863093aedb7bc7e3771bebb070e8f433b17f (diff) | |
download | gcc-00296d7f68fe3f6ce378fed88eab9999af3a2449.zip gcc-00296d7f68fe3f6ce378fed88eab9999af3a2449.tar.gz gcc-00296d7f68fe3f6ce378fed88eab9999af3a2449.tar.bz2 |
re PR middle-end/81207 (tree check fail in simplify_builtin_call)
PR middle-end/81207
* gimple-fold.c (replace_call_with_call_and_fold): Handle
gimple_vuse copying separately from gimple_vdef copying.
* gcc.c-torture/compile/pr81207.c: New test.
From-SVN: r249677
Diffstat (limited to 'gcc/gimple-fold.c')
-rw-r--r-- | gcc/gimple-fold.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c index a00c2c8..8e315fe 100644 --- a/gcc/gimple-fold.c +++ b/gcc/gimple-fold.c @@ -607,9 +607,10 @@ replace_call_with_call_and_fold (gimple_stmt_iterator *gsi, gimple *repl) && TREE_CODE (gimple_vdef (stmt)) == SSA_NAME) { gimple_set_vdef (repl, gimple_vdef (stmt)); - gimple_set_vuse (repl, gimple_vuse (stmt)); SSA_NAME_DEF_STMT (gimple_vdef (repl)) = repl; } + if (gimple_vuse (stmt)) + gimple_set_vuse (repl, gimple_vuse (stmt)); gsi_replace (gsi, repl, false); fold_stmt (gsi); } |