]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR tree-optimization/46620 (32-bit structures containing bitfields are not copied...
authorAlexandre Oliva <aoliva@redhat.com>
Sat, 19 Feb 2011 21:15:01 +0000 (21:15 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Sat, 19 Feb 2011 21:15:01 +0000 (21:15 +0000)
PR tree-optimization/46620
* tree-sra.c (try_instantiate_multiple_fields): Don't get stuck at
padding within accessed words.

From-SVN: r170328

gcc/ChangeLog
gcc/tree-sra.c

index 7743ae0d49358e307232be5ac59e9fc05523ab82..76fd7eb5944c62f4d3184afc9fd8f19afa68c455 100644 (file)
@@ -1,3 +1,9 @@
+2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR tree-optimization/46620
+       * tree-sra.c (try_instantiate_multiple_fields): Don't get stuck at
+       padding within accessed words.
+
 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
 
        * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
index b693ddd178ddd7bb08cd2e11055bd297c0f693d5..b0200cd1ffe885bfc24949d23f94d0e743b6729e 100644 (file)
@@ -1661,13 +1661,13 @@ try_instantiate_multiple_fields (struct sra_elt *elt, tree f)
                  || mbit + msize <= fbit)
                continue;
 
-             if (fbit <= mbit)
+             if (fbit < bit)
                {
                  unsigned HOST_WIDE_INT diff = fbit + fsize - mbit;
                  mbit += diff;
                  msize -= diff;
                }
-             else if (fbit > mbit)
+             else if (fbit > bit)
                msize -= (mbit + msize - fbit);
              else
                gcc_unreachable ();