------- Comment #2 from ubizjak at gmail dot com  2008-04-23 17:28 -------
Index: expmed.c
===================================================================
--- expmed.c    (revision 134561)
+++ expmed.c    (working copy)
@@ -976,7 +976,10 @@ store_fixed_bit_field (rtx op0, unsigned
     }

   if (op0 != temp)
-    emit_move_insn (op0, temp);
+    {
+      op0 = copy_rtx (op0);
+      emit_move_insn (op0, temp);
+    }
 }


 /* Store a bit field that is split across multiple accessible memory objects.

The above patch fixes invalid rtl sharing.

BTW: The testcase  doesn't fail for x86_64-linux. Can you please regression
test the patch (and write a testcase ;) on *-mingw target?


-- 

ubizjak at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2008-04-23 17:28:45
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36006

Reply via email to