diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2000-04-14 11:51:36 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2000-04-14 07:51:36 -0400 |
commit | b1ba4cc3a816154b5290595bd1ac73280e75116e (patch) | |
tree | 7a1b792f83f98421a9e2d6ccf0436a8815a11d9d | |
parent | b3ddc3ab4b734c79d52fb361255e364e02869866 (diff) | |
download | gcc-b1ba4cc3a816154b5290595bd1ac73280e75116e.zip gcc-b1ba4cc3a816154b5290595bd1ac73280e75116e.tar.gz gcc-b1ba4cc3a816154b5290595bd1ac73280e75116e.tar.bz2 |
stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to see if DECL_BIT_FIELD needs to still be set.
* stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
see if DECL_BIT_FIELD needs to still be set.
From-SVN: r33149
-rw-r--r-- | gcc/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/stor-layout.c | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 26ff459..d068b59 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ Fri Apr 14 07:40:32 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to + see if DECL_BIT_FIELD needs to still be set. + * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7. * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c index c27cc22..0f3119f 100644 --- a/gcc/stor-layout.c +++ b/gcc/stor-layout.c @@ -351,7 +351,7 @@ layout_decl (decl, known_align) register enum machine_mode xmode = mode_for_size_tree (DECL_SIZE (decl), MODE_INT, 1); - if (xmode != BLKmode && known_align > GET_MODE_ALIGNMENT (xmode)) + if (xmode != BLKmode && known_align >= GET_MODE_ALIGNMENT (xmode)) { DECL_ALIGN (decl) = MAX (GET_MODE_ALIGNMENT (xmode), DECL_ALIGN (decl)); @@ -363,7 +363,7 @@ layout_decl (decl, known_align) /* Turn off DECL_BIT_FIELD if we won't need it set. */ if (code == FIELD_DECL && DECL_BIT_FIELD (decl) && TYPE_MODE (type) == BLKmode && DECL_MODE (decl) == BLKmode - && known_align > TYPE_ALIGN (type) + && known_align >= TYPE_ALIGN (type) && DECL_ALIGN (decl) >= TYPE_ALIGN (type) && DECL_SIZE_UNIT (decl) != 0) DECL_BIT_FIELD (decl) = 0; |