OSDN Git Service

* cp-tree.h (CLASSTYPE_ALIGN_UNIT): New macro.
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 29 May 2000 15:35:06 +0000 (15:35 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 29 May 2000 15:35:06 +0000 (15:35 +0000)
* class.c (layout_empty_base): Use CLASSTYPE_ALIGN_UNIT, not
CLASSTYPE_ALIGN.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34252 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/class.c
gcc/cp/cp-tree.h

index 385f921..c1ef5fb 100644 (file)
@@ -1,3 +1,9 @@
+2000-05-29  Mark Mitchell  <mark@codesourcery.com>
+
+       * 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  <gdr@codesourcery.com>
 
        * decl2.c (lang_decode_option): Use skip_leading_substring instead
index 57746ed..be0a84a 100644 (file)
@@ -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.  */
index 347cde8..3c6fd95 100644 (file)
@@ -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.  */