From: Jan Hubicka Date: Tue, 19 Feb 2008 17:11:12 +0000 (+0100) Subject: re PR rtl-optimization/34408 (Invalid RTL sharing with -fsee and inline functions) X-Git-Tag: releases/gcc-4.4.0~6413 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9d5cee3d87ec186ad3a2725e0318d37a4b7a3d68;p=thirdparty%2Fgcc.git re PR rtl-optimization/34408 (Invalid RTL sharing with -fsee and inline functions) PR rtl-optimization/34408 * see.c (see_def_extension_not_merged): Copy subreg so we don't have invalid sharing. From-SVN: r132440 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 158984452e3b..4f53e48ccf17 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2008-02-19 Jan Hubicka + + PR rtl-optimization/34408 + * see.c (see_def_extension_not_merged): Copy subreg so we don't have invalid sharing. + 2008-02-19 Jan Hubicka PR middle-end/28779 diff --git a/gcc/see.c b/gcc/see.c index 8191b2d81036..d932f51a2668 100644 --- a/gcc/see.c +++ b/gcc/see.c @@ -2508,7 +2508,7 @@ see_def_extension_not_merged (struct see_ref_s *curr_ref_s, rtx def_se) d.to = new_pseudo_reg; note_uses (&PATTERN (ref_copy), see_replace_src, &d); /* Step b: Replace every instance of dest_reg with the subreg. */ - ref_copy = replace_rtx (ref_copy, dest_reg, subreg); + ref_copy = replace_rtx (ref_copy, dest_reg, copy_rtx (subreg)); /* Step c: Replace every use of the new pseudo register back to dest_real_reg. */