]> git.ipfire.org Git - thirdparty/gcc.git/commit
stor-layout.c (place_union_field): Apply ADJUST_FIELD_ALIGN to type_align when PCC_BI...
authorJakub Jelinek <jakub@redhat.com>
Wed, 7 Aug 2002 18:11:00 +0000 (20:11 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 7 Aug 2002 18:11:00 +0000 (20:11 +0200)
commitd7b3369c52cfe15d147d398f00aaf580f6535d6f
treeb2a967af23bf9b18f51c837d4ff6c592c3e76a12
parent379aa2fe2e0d97e66f20b8e154570ea9e4ec4a8e
stor-layout.c (place_union_field): Apply ADJUST_FIELD_ALIGN to type_align when PCC_BITFIELD_TYPE_MATTERS.

* stor-layout.c (place_union_field): Apply ADJUST_FIELD_ALIGN
to type_align when PCC_BITFIELD_TYPE_MATTERS.  Only apply
ADJUST_FIELD_ALIGN if not DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
(place_field): Likewise.
* config/i386/i386.c (x86_field_alignment): Don't check
TARGET_ALIGN_DOUBLE for the second time.
Apply min for all MODE_INT and MODE_CLASS_INT modes.
* config/rs6000/rs6000.c (rs6000_field_alignment): New.
* config/rs6000/rs6000-protos.h (rs6000_field_alignment): New
prototype.
* config/rs6000/rs6000.h (ADJUST_FIELD_ALIGN): Define.
* config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Remove.
* config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Remove.
* config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Remove.
* config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Remove.
* doc/tm.texi (ADJUST_FIELD_ALIGN): Update description.

* gcc.dg/i386-bitfield1.c: New test.
* g++.dg/abi/bitfield3.C: New test.

Co-Authored-By: Richard Henderson <rth@redhat.com>
From-SVN: r56104
14 files changed:
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/rs6000/aix.h
gcc/config/rs6000/darwin.h
gcc/config/rs6000/linux64.h
gcc/config/rs6000/rs6000-protos.h
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.h
gcc/config/rs6000/sysv4.h
gcc/doc/tm.texi
gcc/stor-layout.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/abi/bitfield3.C
gcc/testsuite/gcc.dg/i386-bitfield1.c [new file with mode: 0644]