OSDN Git Service

* c-decl.c (finish_struct): Move code to set DECL_PACKED after
authornemet <nemet@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 23 Jan 2009 06:29:54 +0000 (06:29 +0000)
committernemet <nemet@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 23 Jan 2009 06:29:54 +0000 (06:29 +0000)
commit9fd767c5fd2774e0fc922e1497326dc6ce3fe4a5
treef2ccff5eab03e65287a19a85ac3f6e9c2d8e320d
parent5a88eb87265ab500347a22f3969195246d5f5358
* c-decl.c (finish_struct): Move code to set DECL_PACKED after
DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
regardless of their type.
* c-common.c (handle_packed_attribute): Don't ignore packed on
bitfields.
* c.opt (Wpacked-bitfield-compat): New warning option.
* stor-layout.c (place_field): Warn if offset of a field changed.
* doc/extend.texi (packed): Mention the ABI change.
* doc/invoke.texi (-Wpacked-bitfield-compat): Document.
(Warning Options): Add it to the list.

cp/
* class.c (check_field_decls): Also inherit packed for bitfields
regardless of their type.

testsuite/
* gcc.dg/bitfld-15.c, gcc.dg/bitfld-16.c,
gcc.dg/bitfld-17.c,gcc.dg/bitfld-18.c: New tests.
* g++.dg/ext/bitfield2.C, g++.dg/ext/bitfield3.C,
g++.dg/ext/bitfield4.C, g++.dg/ext/bitfield5.C: New tests.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@143584 138bc75d-0d04-0410-961f-82ee72b054a4
18 files changed:
gcc/ChangeLog
gcc/c-common.c
gcc/c-decl.c
gcc/c.opt
gcc/cp/ChangeLog
gcc/cp/class.c
gcc/doc/extend.texi
gcc/doc/invoke.texi
gcc/stor-layout.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ext/bitfield2.C [new file with mode: 0644]
gcc/testsuite/g++.dg/ext/bitfield3.C [new file with mode: 0644]
gcc/testsuite/g++.dg/ext/bitfield4.C [new file with mode: 0644]
gcc/testsuite/g++.dg/ext/bitfield5.C [new file with mode: 0644]
gcc/testsuite/gcc.dg/bitfld-15.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/bitfld-16.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/bitfld-17.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/bitfld-18.c [new file with mode: 0644]