aboutsummaryrefslogtreecommitdiff
path: root/gcc/stor-layout.c
diff options
context:
space:
mode:
authorJ"orn Rennecke <amylaar@redhat.com>2001-03-03 03:53:44 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>2001-03-03 03:53:44 +0000
commit31a02448c02a74e9e20dc3f456ad9614253d2909 (patch)
tree10c1e0656f3453c646774445c67f49fbce2877ec /gcc/stor-layout.c
parenteaf4e6183e957581cc1a01378a88f7ca571e7db7 (diff)
downloadgcc-31a02448c02a74e9e20dc3f456ad9614253d2909.zip
gcc-31a02448c02a74e9e20dc3f456ad9614253d2909.tar.gz
gcc-31a02448c02a74e9e20dc3f456ad9614253d2909.tar.bz2
tm.texi: Change STRUCT_FORCE_BLK to MEMBER_TYPE_FORCES_BLK.
* tm.texi: Change STRUCT_FORCE_BLK to MEMBER_TYPE_FORCES_BLK. * config/c4x/c4x.h: Likewise. * stor-layout.c (compute_record_mode): Likewise. (layout_type, case ARRAY_TYPE): Use MEMBER_TYPE_FORCES_BLK. From-SVN: r40200
Diffstat (limited to 'gcc/stor-layout.c')
-rw-r--r--gcc/stor-layout.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c
index 065d4f6..152eff1 100644
--- a/gcc/stor-layout.c
+++ b/gcc/stor-layout.c
@@ -1111,12 +1111,12 @@ compute_record_mode (type)
if (simple_cst_equal (TYPE_SIZE (type), DECL_SIZE (field)))
mode = DECL_MODE (field);
-#ifdef STRUCT_FORCE_BLK
+#ifdef MEMBER_TYPE_FORCES_BLK
/* With some targets, eg. c4x, it is sub-optimal
to access an aligned BLKmode structure as a scalar. */
- if (mode == VOIDmode && STRUCT_FORCE_BLK (field))
+ if (mode == VOIDmode && MEMBER_TYPE_FORCES_BLK (field))
return;
-#endif /* STRUCT_FORCE_BLK */
+#endif /* MEMBER_TYPE_FORCES_BLK */
}
/* If we only have one real field; use its mode. This only applies to
@@ -1450,6 +1450,9 @@ layout_type (type)
TYPE_MODE (type) = BLKmode;
if (TYPE_SIZE (type) != 0
+#ifdef MEMBER_TYPE_FORCES_BLK
+ && ! MEMBER_TYPE_FORCES_BLK (type)
+#endif
/* BLKmode elements force BLKmode aggregate;
else extract/store fields may lose. */
&& (TYPE_MODE (TREE_TYPE (type)) != BLKmode