This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 02/28/2018 12:26 AM, Jakub Jelinek wrote: > Hi! > > The following patch fixes the reported ms_struct/-mms-bitfields structure > layout issues from PR52991. > > There are multiple issues, two of them introduced by the > https://gcc.gnu.org/ml/gcc-patches/2006-04/msg01064.html -mms-bitfields > revamp from Eric and follow-up fix r114552, the rest has been introduced > later when the known_align < desired_align case has been enabled for the ms > bitfield layout. > > The first 2 hunks fix alignment of packed non-bitfield fields, we can't > ignore all the alignment updates for them, just should use only > desired_align which takes DECL_PACKED into account, rather than > MAX (type_align, desired_align). Similarly, the last hunk in stor-layout.c > makes sure that for DECL_PACKED fields we use BITS_PER_UNIT alignment rather > than the type alignment. > > The rest attempts to unbreak r184409 which enabled known_align < desired_align > case; doing that if rli->prev_field and ms layout is wrong, we first need to > deal with the bitfield packing and if we are within a bitfield word, we > shouldn't do any realignment, only in between them. > > The patch reverts changes to bf-ms-layout{,-2}.c tests done in 2012, which > were done just to match the r184409 changes, and adds 2 new tests. All of > these 4 I've tested (slightly tweaked, so that it compiles with VC) with > the online VC compiler http://rextester.com/l/c_online_compiler_visual . > > Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? > No objections.
Attachment:
signature.asc
Description: OpenPGP digital signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |