diff options
author | Alexandre Oliva <oliva@adacore.com> | 2022-12-29 14:32:54 -0300 |
---|---|---|
committer | Alexandre Oliva <oliva@gnu.org> | 2022-12-29 14:39:46 -0300 |
commit | a7d397bf6fa23c5d88bf0dbb32ce8247831c3bf4 (patch) | |
tree | 3c7563d94204cd01d810f4ad02598a47b4d6ed02 | |
parent | e2535c6035270c8b46491c6d33285ac29362bdf7 (diff) | |
download | gcc-a7d397bf6fa23c5d88bf0dbb32ce8247831c3bf4.zip gcc-a7d397bf6fa23c5d88bf0dbb32ce8247831c3bf4.tar.gz gcc-a7d397bf6fa23c5d88bf0dbb32ce8247831c3bf4.tar.bz2 |
tree-inline decl_map: skip mapping result's NULL default def
If a result doesn't have a default def, don't attempt to remap it.
for gcc/ChangeLog
* tree-inline.cc (declare_return_variable): Don't remap NULL
default def of result.
-rw-r--r-- | gcc/tree-inline.cc | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/tree-inline.cc b/gcc/tree-inline.cc index bfea1cc..4556256 100644 --- a/gcc/tree-inline.cc +++ b/gcc/tree-inline.cc @@ -3851,10 +3851,11 @@ declare_return_variable (copy_body_data *id, tree return_slot, tree modify_dest, it's default_def SSA_NAME. */ if (gimple_in_ssa_p (id->src_cfun) && is_gimple_reg (result)) - { - temp = make_ssa_name (temp); - insert_decl_map (id, ssa_default_def (id->src_cfun, result), temp); - } + if (tree default_def = ssa_default_def (id->src_cfun, result)) + { + temp = make_ssa_name (temp); + insert_decl_map (id, default_def, temp); + } insert_init_stmt (id, entry_bb, gimple_build_assign (temp, var)); } else |