aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Oliva <oliva@adacore.com>2022-12-29 14:32:54 -0300
committerAlexandre Oliva <oliva@gnu.org>2022-12-29 14:39:46 -0300
commita7d397bf6fa23c5d88bf0dbb32ce8247831c3bf4 (patch)
tree3c7563d94204cd01d810f4ad02598a47b4d6ed02
parente2535c6035270c8b46491c6d33285ac29362bdf7 (diff)
downloadgcc-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.cc9
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