From 7f7680a9a44a63da78f064d41660db2b57460187 Mon Sep 17 00:00:00 2001 From: Michael Hayes Date: Thu, 13 Jan 2000 10:43:35 +0000 Subject: stor-layout.c (layout_type): Use FORCE_STRUCT_BLK. * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK. * tm.texi (FORCE_STRUCT_BLK): Document. * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro. From-SVN: r31385 --- gcc/stor-layout.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'gcc/stor-layout.c') diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c index e9c3740..455152f 100644 --- a/gcc/stor-layout.c +++ b/gcc/stor-layout.c @@ -1057,6 +1057,13 @@ layout_type (type) register instead of forcing it to live in the stack. */ if (simple_cst_equal (TYPE_SIZE (type), DECL_SIZE (field))) mode = DECL_MODE (field); + +#ifdef STRUCT_FORCE_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)) + goto record_lose; +#endif /* STRUCT_FORCE_BLK */ } if (mode != VOIDmode) -- cgit v1.1