]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
expr.c (expand_assignment): Update bitregion_start and bitregion_end.
authorBernd Edlinger <bernd.edlinger@hotmail.de>
Fri, 6 Dec 2013 14:23:00 +0000 (14:23 +0000)
committerBernd Edlinger <edlinger@gcc.gnu.org>
Fri, 6 Dec 2013 14:23:00 +0000 (14:23 +0000)
2013-12-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * expr.c (expand_assignment): Update bitregion_start and
        bitregion_end.

From-SVN: r205745

gcc/ChangeLog
gcc/expr.c

index 662fae31cf20f29e6daa64067344660f6a94ca51..abf4283dc645b04df2da306512e04597e68c1144 100644 (file)
@@ -1,3 +1,8 @@
+2013-12-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
+
+       * expr.c (expand_assignment): Update bitregion_start and
+       bitregion_end.
+
 2013-12-06  Eric Botcazou  <ebotcazou@adacore.com>
 
        PR target/59316
index 2a13d8f961865e8053788fbf25f11a499ef6c55f..f173d032c21ef28125de41bfd1e53e98c5dc4399 100644 (file)
@@ -4880,6 +4880,9 @@ expand_assignment (tree to, tree from, bool nontemporal)
              && MEM_ALIGN (to_rtx) == GET_MODE_ALIGNMENT (mode1))
            {
              to_rtx = adjust_address (to_rtx, mode1, bitpos / BITS_PER_UNIT);
+             bitregion_start = 0;
+             if (bitregion_end >= (unsigned HOST_WIDE_INT) bitpos)
+               bitregion_end -= bitpos;
              bitpos = 0;
            }