]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR rtl-optimization/34408 (Invalid RTL sharing with -fsee and inline functions)
authorJan Hubicka <jh@suse.cz>
Tue, 19 Feb 2008 17:11:12 +0000 (18:11 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Tue, 19 Feb 2008 17:11:12 +0000 (17:11 +0000)
PR rtl-optimization/34408
* see.c (see_def_extension_not_merged): Copy subreg so we don't have invalid sharing.

From-SVN: r132440

gcc/ChangeLog
gcc/see.c

index 158984452e3b134bb8f2f91defb7b15e5d9bf2cb..4f53e48ccf17738a8d3875b213d85c3cbb85fa14 100644 (file)
@@ -1,3 +1,8 @@
+2008-02-19  Jan Hubicka  <jh@suse.cz>
+
+       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  <jh@suse.cz>
 
        PR middle-end/28779
index 8191b2d81036e60c8986b74fc74554c72614ba66..d932f51a2668a819036772034e18cc07d13673b3 100644 (file)
--- 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.  */