aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-split.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2010-06-28 23:16:25 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2010-06-28 21:16:25 +0000
commit6b5c2d6c5efa1984e10528a37d1d61c9feb06b2e (patch)
tree8ad4166fea4d3ce322b0bfd5e45b80fd6f5061c6 /gcc/ipa-split.c
parent7fd7263dc9212bcf694e951327a9b33872158d37 (diff)
downloadgcc-6b5c2d6c5efa1984e10528a37d1d61c9feb06b2e.zip
gcc-6b5c2d6c5efa1984e10528a37d1d61c9feb06b2e.tar.gz
gcc-6b5c2d6c5efa1984e10528a37d1d61c9feb06b2e.tar.bz2
re PR middle-end/44671 (Partial inlining breaks C++)
PR middle-end/44671 * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of RESULT_DECL. From-SVN: r161514
Diffstat (limited to 'gcc/ipa-split.c')
-rw-r--r--gcc/ipa-split.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/ipa-split.c b/gcc/ipa-split.c
index 78895d0..ae784b6 100644
--- a/gcc/ipa-split.c
+++ b/gcc/ipa-split.c
@@ -138,6 +138,7 @@ test_nonssa_use (gimple stmt ATTRIBUTE_UNUSED, tree t,
if (t && !is_gimple_reg (t)
&& ((TREE_CODE (t) == VAR_DECL
&& auto_var_in_fn_p (t, current_function_decl))
+ || (TREE_CODE (t) == RESULT_DECL)
|| (TREE_CODE (t) == PARM_DECL)))
return bitmap_bit_p ((bitmap)data, DECL_UID (t));
return false;
@@ -441,7 +442,8 @@ mark_nonssa_use (gimple stmt ATTRIBUTE_UNUSED, tree t,
return true;
}
- if (TREE_CODE (t) == VAR_DECL && auto_var_in_fn_p (t, current_function_decl))
+ if ((TREE_CODE (t) == VAR_DECL && auto_var_in_fn_p (t, current_function_decl))
+ || (TREE_CODE (t) == RESULT_DECL))
bitmap_set_bit ((bitmap)data, DECL_UID (t));
return false;
}