From 1af6141b86cb39d14b4cda2f8aa7127642e9ffba Mon Sep 17 00:00:00 2001 From: Alexandre Oliva Date: Tue, 5 Feb 2002 18:01:51 +0000 Subject: [PATCH] class.c: Include target.h. * class.c: Include target.h. (check_bitfield_decl): Disregard EMPTY_FIELD_BOUNDARY, BITFIELDS_NBYTES_LIMITED and PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout. * Make-lang.in: Adjust deps. From-SVN: r49527 --- gcc/cp/ChangeLog | 8 ++++++++ gcc/cp/Make-lang.in | 2 +- gcc/cp/class.c | 4 +++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 76af2baadf5..5c463a776c8 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,11 @@ +2002-02-05 Alexandre Oliva + + * class.c: Include target.h. + (check_bitfield_decl): Disregard EMPTY_FIELD_BOUNDARY, + BITFIELDS_NBYTES_LIMITED and PCC_BITFIELD_TYPE_MATTERS for MS + bit-field layout. + * Make-lang.in: Adjust deps. + 2002-02-05 Jason Merrill * error.c (dump_type): Be more helpful about VECTOR_TYPE. diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in index 6123612a358..976559a8d29 100644 --- a/gcc/cp/Make-lang.in +++ b/gcc/cp/Make-lang.in @@ -262,7 +262,7 @@ cp/typeck2.o: cp/typeck2.c $(CXX_TREE_H) flags.h toplev.h output.h $(TM_P_H) \ diagnostic.h cp/typeck.o: cp/typeck.c $(CXX_TREE_H) flags.h $(RTL_H) $(EXPR_H) toplev.h \ diagnostic.h -cp/class.o: cp/class.c $(CXX_TREE_H) flags.h toplev.h $(RTL_H) +cp/class.o: cp/class.c $(CXX_TREE_H) flags.h toplev.h $(RTL_H) $(TARGET_H) cp/call.o: cp/call.c $(CXX_TREE_H) flags.h toplev.h $(RTL_H) $(EXPR_H) \ $(GGC_H) diagnostic.h cp/friend.o: cp/friend.c $(CXX_TREE_H) flags.h $(RTL_H) toplev.h $(EXPR_H) diff --git a/gcc/cp/class.c b/gcc/cp/class.c index 1e62c592817..c5e349cdc20 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -33,6 +33,7 @@ Boston, MA 02111-1307, USA. */ #include "toplev.h" #include "ggc.h" #include "lex.h" +#include "target.h" #include "obstack.h" #define obstack_chunk_alloc xmalloc @@ -3106,7 +3107,8 @@ check_bitfield_decl (field) DECL_SIZE (field) = convert (bitsizetype, w); DECL_BIT_FIELD (field) = 1; - if (integer_zerop (w)) + if (integer_zerop (w) + && ! (* targetm.ms_bitfield_layout_p) (DECL_FIELD_CONTEXT (field))) { #ifdef EMPTY_FIELD_BOUNDARY DECL_ALIGN (field) = MAX (DECL_ALIGN (field), -- 2.30.2