aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2000-04-19 16:07:51 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2000-04-19 12:07:51 -0400
commitb1254b72c8c1630ef4adcde44a49a10e64e6b9e8 (patch)
treeaf231c099abf57d8cff96590ee4953a3f9d6dc0a
parentecb3660479fa03a9b8f619205587646acf66615c (diff)
downloadgcc-b1254b72c8c1630ef4adcde44a49a10e64e6b9e8.zip
gcc-b1254b72c8c1630ef4adcde44a49a10e64e6b9e8.tar.gz
gcc-b1254b72c8c1630ef4adcde44a49a10e64e6b9e8.tar.bz2
* stor-layout.c (place_field): Set rli->offset_align properly.
From-SVN: r33262
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/stor-layout.c7
2 files changed, 8 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c94482c..b93a25b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+Wed Apr 19 12:14:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * stor-layout.c (place_field): Set rli->offset_align properly.
+
2000-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c
index 0f3119f..412fd31 100644
--- a/gcc/stor-layout.c
+++ b/gcc/stor-layout.c
@@ -753,6 +753,9 @@ place_field (rli, field)
rli->offset = round_up (rli->offset, desired_align / BITS_PER_UNIT);
}
+ if (! TREE_CONSTANT (rli->offset))
+ rli->offset_align = desired_align;
+
}
/* Handle compatibility with PCC. Note that if the record has any
@@ -821,9 +824,6 @@ place_field (rli, field)
}
#endif
- if (! TREE_CONSTANT (rli->offset))
- rli->offset_align = DECL_ALIGN (field);
-
/* Offset so far becomes the position of this field after normalizing. */
normalize_rli (rli);
DECL_FIELD_OFFSET (field) = rli->offset;
@@ -866,6 +866,7 @@ place_field (rli, field)
rli->offset
= size_binop (PLUS_EXPR, rli->offset, DECL_SIZE_UNIT (field));
rli->bitpos = bitsize_zero_node;
+ rli->offset_align = MIN (rli->offset_align, DECL_ALIGN (field));
}
else
{