re PR middle-end/23623 (volatile keyword changes bitfield access size from 32bit...
authorSandra Loosemore <sandra@codesourcery.com>
Wed, 11 Dec 2013 16:50:05 +0000 (11:50 -0500)
committerBernd Edlinger <edlinger@gcc.gnu.org>
Wed, 11 Dec 2013 16:50:05 +0000 (16:50 +0000)
commitf5d4f18c5332e5235b53f4b9496ef4e498e92f1f
tree1adfbe0c18fd93a2d8326c0ccef386d4e2b54fed
parent2ccd6f727633d25730154efd7094900d24bf6544
re PR middle-end/23623 (volatile keyword changes bitfield access size from 32bit to 8bit)

2013-12-11  Sandra Loosemore  <sandra@codesourcery.com>

        PR middle-end/23623
        PR middle-end/48784
        PR middle-end/56341
        PR middle-end/56997

        gcc/
        * expmed.c (strict_volatile_bitfield_p): New function.
        (store_bit_field_1): Don't special-case strict volatile
        bitfields here.
        (store_bit_field): Handle strict volatile bitfields here instead.
        (store_fixed_bit_field): Don't special-case strict volatile
        bitfields here.
        (extract_bit_field_1): Don't special-case strict volatile
        bitfields here.
        (extract_bit_field): Handle strict volatile bitfields here instead.
        (extract_fixed_bit_field): Don't special-case strict volatile
        bitfields here.  Simplify surrounding code to resemble that in
        store_fixed_bit_field.
        * doc/invoke.texi (Code Gen Options): Update
        -fstrict-volatile-bitfields description.

        gcc/testsuite/
        * gcc.dg/pr23623.c: New test.
        * gcc.dg/pr48784-1.c: New test.
        * gcc.dg/pr48784-2.c: New test.
        * gcc.dg/pr56341-1.c: New test.
        * gcc.dg/pr56341-2.c: New test.
        * gcc.dg/pr56997-1.c: New test.
        * gcc.dg/pr56997-2.c: New test.
        * gcc.dg/pr56997-3.c: New test.

From-SVN: r205896
12 files changed:
gcc/ChangeLog
gcc/doc/invoke.texi
gcc/expmed.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr23623.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr48784-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr48784-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr56341-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr56341-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr56997-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr56997-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr56997-3.c [new file with mode: 0644]