diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog index abab0b9b409..1c245af8639 100644 --- a/libobjc/ChangeLog +++ b/libobjc/ChangeLog @@ -6,6 +6,10 @@ * encoding.c (objc_layout_finish_structure): Don't use ROUND_TYPE_ALIGN on sparc. + * encoding.c (objc_layout_structure_next_member): Do the whole + procedure even for the first member, so that we get correct + alignment. + 2000-03-29 Zack Weinberg * objc/Protocol.h, objc/objc-list.h: Change #endif labels to diff --git a/libobjc/encoding.c b/libobjc/encoding.c index dde009cea38..7841196cd5e 100644 --- a/libobjc/encoding.c +++ b/libobjc/encoding.c @@ -743,15 +743,6 @@ objc_layout_structure_next_member (struct objc_struct_layout *layout) /* The current type without the type qualifiers */ const char *type; -#if 1 - if (layout->prev_type == NULL) - { - layout->prev_type = layout->type; - layout->type = objc_skip_typespec (layout->prev_type); - return YES; - } -#endif - /* Add the size of the previous field to the size of the record. */ if (layout->prev_type) { @@ -760,7 +751,6 @@ objc_layout_structure_next_member (struct objc_struct_layout *layout) if (*type != _C_BFLD) layout->record_size += objc_sizeof_type (type) * BITS_PER_UNIT; else { - desired_align = 1; /* Get the bitfield's type */ for (bfld_type = type + 1; isdigit(*bfld_type);