* c-common.c (flag_abi_version): New variable.
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 23 Sep 2002 09:22:17 +0000 (09:22 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 23 Sep 2002 09:22:17 +0000 (09:22 +0000)
commit221c4c52c37fe406e61c82361601c39ab4ec1241
tree1a0a4c88a7ec146d17c908d2c4246c6c718372b8
parentfefb85cc0369fd0d389260d2adb1090ebd58d71b
* c-common.c (flag_abi_version): New variable.
* c-common.h (flag_abi_version): Declare it.
* c-opts.c (missing_arg): Add -fabi-version.
(c_common_decode_option): Process -fabi-version.
* doc/invoke.texi (-fabi-version): Document it.
(-Wabi): Add information about bit-fields in unions.

* cp/class.c (layout_virtual_bases): Do not round the size of the
type to a multiple of the alignment before laying out virtual bases.
(layout_class_type): Correct handling of bit-fields that are wider
than their type inside unions.  Round the size of the type to a
even number of bytes when computing the size without virtual
bases.
* cp/cp-tree.h (abi_version_at_least): New macro.

* g++.dg/abi/bitfield6.C: New test.
* g++.dg/abi/bitfield7.C: New test.
* g++.dg/abi/bitfield8.C: New test.
* g++.dg/abi/vbase11.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57432 138bc75d-0d04-0410-961f-82ee72b054a4
13 files changed:
gcc/ChangeLog
gcc/c-common.c
gcc/c-common.h
gcc/c-opts.c
gcc/cp/ChangeLog
gcc/cp/class.c
gcc/cp/cp-tree.h
gcc/doc/invoke.texi
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/abi/bitfield6.C [new file with mode: 0644]
gcc/testsuite/g++.dg/abi/bitfield7.C [new file with mode: 0644]
gcc/testsuite/g++.dg/abi/bitfield8.C [new file with mode: 0644]
gcc/testsuite/g++.dg/abi/vbase11.C [new file with mode: 0644]