From 221c4c52c37fe406e61c82361601c39ab4ec1241 Mon Sep 17 00:00:00 2001 From: mmitchel Date: Mon, 23 Sep 2002 09:22:17 +0000 Subject: * 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 --- gcc/c-common.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'gcc/c-common.h') diff --git a/gcc/c-common.h b/gcc/c-common.h index f15dbf18bf5..8cf6aa47ce8 100644 --- a/gcc/c-common.h +++ b/gcc/c-common.h @@ -737,6 +737,21 @@ extern int flag_permissive; extern int flag_enforce_eh_specs; +/* The version of the C++ ABI in use. The following values are + allowed: + + -1: The version of the ABI believed most conformant with the + C++ ABI specification. This ABI may change as bugs are + discovered and fixed. Therefore, -1 will not necessarily + indicate the same ABI in different versions of G++. + + 0: The version of the ABI first used in G++ 3.2. + + Additional positive integers will be assigned as new versions of + the ABI become the default version of the ABI. */ + +extern int flag_abi_version; + /* Nonzero means warn about things that will change when compiling with an ABI-compliant compiler. */ -- cgit v1.2.1