diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 68c35907730..1f418a947e1 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +1999-09-01 Mark Mitchell + + * cp-tree.h (lang_type): Move align into type_flags. + (CLASSTYPE_ALIGN): Adjust accordingly. + * call.c (direct_reference_binding): Remove misleading comment. + 1999-08-30 Kaveh R. Ghazi * parse.y (language_string): Constify. diff --git a/gcc/cp/call.c b/gcc/cp/call.c index eed211f884a..0eefa7f49c0 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -987,10 +987,9 @@ direct_reference_binding (type, conv) /* Returns the conversion path from type FROM to reference type TO for purposes of reference binding. For lvalue binding, either pass a - reference type to FROM or an lvalue expression to EXPR. - - Currently does not distinguish in the generated trees between binding to - an lvalue and a temporary. Should it? */ + reference type to FROM or an lvalue expression to EXPR. If the + reference will be bound to a temporary, NEED_TEMPORARY_P is set for + the conversion returned. */ static tree reference_binding (rto, rfrom, expr, flags) diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index 40d280a89af..8448b109f61 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -809,7 +809,9 @@ struct lang_type /* The MIPS compiler gets it wrong if this struct also does not fill out to a multiple of 4 bytes. Add a member `dummy' with new bits if you go over the edge. */ - unsigned dummy : 14; + unsigned dummy : 6; + + unsigned char align; } type_flags; int vsize; @@ -822,9 +824,6 @@ struct lang_type union tree_node *search_slot; - unsigned char align; - /* Room for another three unsigned chars. */ - union tree_node *size; union tree_node *abstract_virtuals; @@ -999,7 +998,7 @@ struct lang_type /* These are the size, mode and alignment of the type without its virtual base classes, for when we use this type as a base itself. */ #define CLASSTYPE_SIZE(NODE) (TYPE_LANG_SPECIFIC(NODE)->size) -#define CLASSTYPE_ALIGN(NODE) (TYPE_LANG_SPECIFIC(NODE)->align) +#define CLASSTYPE_ALIGN(NODE) (TYPE_LANG_SPECIFIC(NODE)->type_flags.align) /* A cons list of virtual functions which cannot be inherited by derived classes. When deriving from this type, the derived