aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-inline.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2016-05-04 18:42:12 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2016-05-04 16:42:12 +0000
commit693a9117d0f26a4a7ee07783ac3971641429b03b (patch)
tree317c3feee65692b99ede95d089dd1bdd554cfe19 /gcc/tree-inline.c
parent6b715bf6d991249181ce532442fa5513e137f708 (diff)
downloadgcc-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.c7
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);