From 1b50716d21794f2f69aa2939045fbf1489ff3c19 Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Mon, 29 May 2000 15:35:06 +0000 Subject: [PATCH] cp-tree.h (CLASSTYPE_ALIGN_UNIT): New macro. * cp-tree.h (CLASSTYPE_ALIGN_UNIT): New macro. * class.c (layout_empty_base): Use CLASSTYPE_ALIGN_UNIT, not CLASSTYPE_ALIGN. From-SVN: r34252 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/class.c | 2 +- gcc/cp/cp-tree.h | 4 ++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 385f921..c1ef5fb 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2000-05-29 Mark Mitchell + + * cp-tree.h (CLASSTYPE_ALIGN_UNIT): New macro. + * class.c (layout_empty_base): Use CLASSTYPE_ALIGN_UNIT, not + CLASSTYPE_ALIGN. + 2000-05-28 Gabriel Dos Reis * decl2.c (lang_decode_option): Use skip_leading_substring instead diff --git a/gcc/cp/class.c b/gcc/cp/class.c index 57746ed..be0a84a 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -3723,7 +3723,7 @@ layout_empty_base (binfo, eoc, binfo_offsets) /* This routine should only be used for empty classes. */ my_friendly_assert (is_empty_class (basetype), 20000321); - alignment = ssize_int (CLASSTYPE_ALIGN (basetype)); + alignment = ssize_int (CLASSTYPE_ALIGN_UNIT (basetype)); /* This is an empty base class. We first try to put it at offset zero. */ diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index 347cde8..3c6fd95 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -1637,6 +1637,10 @@ struct lang_type #define CLASSTYPE_SIZE_UNIT(NODE) (TYPE_LANG_SPECIFIC(NODE)->size_unit) #define CLASSTYPE_ALIGN(NODE) (TYPE_LANG_SPECIFIC(NODE)->align) +/* The alignment of NODE, without its virtual bases, in bytes. */ +#define CLASSTYPE_ALIGN_UNIT(NODE) \ + (CLASSTYPE_ALIGN (NODE) / BITS_PER_UNIT) + /* A cons list of virtual functions which cannot be inherited by derived classes. When deriving from this type, the derived class must provide its own definition for each of these functions. */ -- 2.7.4