summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libobjc/ChangeLog4
-rw-r--r--libobjc/encoding.c10
2 files changed, 4 insertions, 10 deletions
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 <zack@wolery.cumb.org>
* 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);