PR target/52991
commit48640bda345a59c83da51adc1a33f01c212554f9
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 28 Feb 2018 17:17:29 +0000 (28 17:17 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 28 Feb 2018 17:17:29 +0000 (28 17:17 +0000)
tree592065ce2afe3ed0b78c452328c6359b99bee5f7
parent59ae3c9cf30c255670427ca75f3c8e0ca643650d
PR target/52991
* stor-layout.c (update_alignment_for_field): For
targetm.ms_bitfield_layout_p (rli->t), if !is_bitfield
&& !DECL_PACKED (field), do the alignment update, just use
only desired_align instead of MAX (type_align, desired_align)
as the alignment.
(place_field): Don't do known_align < desired_align handling
early if targetm.ms_bitfield_layout_p (rli->t) and rli->prev_field
is non-NULL, instead do it after rli->prev_field handling and
only if not within a bitfield word.  For DECL_PACKED (field)
use type_align of BITS_PER_UNIT.

* gcc.dg/bf-ms-layout.c: Revert 2012-04-26 changes.
* gcc.dg/bf-ms-layout-2.c: Revert 2012-02-23 changes.
* gcc.dg/bf-ms-layout-4.c: New test.
* gcc.dg/bf-ms-layout-5.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258075 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/stor-layout.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/bf-ms-layout-2.c
gcc/testsuite/gcc.dg/bf-ms-layout-4.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/bf-ms-layout-5.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/bf-ms-layout.c