re PR middle-end/37248 (regression transformation bitfield to individual bytes)
authorJakub Jelinek <jakub@redhat.com>
Fri, 5 Dec 2008 16:59:34 +0000 (17:59 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 5 Dec 2008 16:59:34 +0000 (17:59 +0100)
commit45dc13b919a68ab42ff8e3698a8c1e6627ac570d
tree88d3af25c17467b354c8e114094bb2128e4a15fe
parent2d95ef974eece42ec7423bd57760db4286e3d19c
re PR middle-end/37248 (regression transformation bitfield to individual bytes)

PR middle-end/37248
* fold-const.c (make_bit_field_ref): Change bitpos and bitsize
arguments to HOST_WIDE_INT.  If type has different signedness
than unsignedp or different precision from bitsize, create
the right type for BIT_FIELD_REF and cast to type.
(fold_truthop): Change first_bit and end_bit to HOST_WIDE_INT.

Revert:
2008-03-05  Richard Guenther  <rguenther@suse.de>
PR c++/35336
* fold-const.c (fold_truthop): Remove code generating
BIT_FIELD_REFs of structure bases.
(fold_binary): Likewise.
(make_bit_field_ref): Remove.
(optimize_bit_field_compare): Remove.
(all_ones_mask_p): Remove.

* gcc.target/i386/pr37248-1.c: New test.
* gcc.target/i386/pr37248-2.c: New test.
* gcc.target/i386/pr37248-3.c: New test.

From-SVN: r142484
gcc/ChangeLog
gcc/fold-const.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr37248-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr37248-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr37248-3.c [new file with mode: 0644]