diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2016-05-04 18:42:12 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2016-05-04 16:42:12 +0000 |
commit | 693a9117d0f26a4a7ee07783ac3971641429b03b (patch) | |
tree | 317c3feee65692b99ede95d089dd1bdd554cfe19 /gcc/tree-inline.c | |
parent | 6b715bf6d991249181ce532442fa5513e137f708 (diff) | |
download | gcc-693a9117d0f26a4a7ee07783ac3971641429b03b.zip gcc-693a9117d0f26a4a7ee07783ac3971641429b03b.tar.gz gcc-693a9117d0f26a4a7ee07783ac3971641429b03b.tar.bz2 |
tree-inline.c (expand_call_inline): Fix path dealing with making lhs of call statement undefined.
* tree-inline.c (expand_call_inline): Fix path dealing with
making lhs of call statement undefined.
From-SVN: r235889
Diffstat (limited to 'gcc/tree-inline.c')
-rw-r--r-- | gcc/tree-inline.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index 19f202e..da233b2 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -4708,7 +4708,7 @@ expand_call_inline (basic_block bb, gimple *stmt, copy_body_data *id) { tree name = gimple_call_lhs (stmt); tree var = SSA_NAME_VAR (name); - tree def = ssa_default_def (cfun, var); + tree def = var ? ssa_default_def (cfun, var) : NULL; if (def) { @@ -4719,6 +4719,11 @@ expand_call_inline (basic_block bb, gimple *stmt, copy_body_data *id) } else { + if (!var) + { + tree var = create_tmp_reg_fn (cfun, TREE_TYPE (name), NULL); + SET_SSA_NAME_VAR_OR_IDENTIFIER (name, var); + } /* Otherwise make this variable undefined. */ gsi_remove (&stmt_gsi, true); set_ssa_default_def (cfun, var, name); |