From e7bba992a94b62c152798dcfcde52b1f9b442398 Mon Sep 17 00:00:00 2001 From: Andrew Haley Date: Thu, 14 Oct 1999 10:49:23 +0000 Subject: [PATCH] class.c (finish_struct_1): Force alignment of non-bitfields to BITS_PER_UNIT. 1999-10-13 Andrew Haley * class.c (finish_struct_1): Force alignment of non-bitfields to BITS_PER_UNIT. From-SVN: r29973 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/class.c | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 3593ce4bc0b4..7cedc4a49356 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +1999-10-13 Andrew Haley + + * class.c (finish_struct_1): Force alignment of non-bitfields to + BITS_PER_UNIT. + Wed Oct 13 22:01:35 1999 J"orn Rennecke * typeck2.c (process_init_constructor): Handle empty constructors. diff --git a/gcc/cp/class.c b/gcc/cp/class.c index d3801867e671..f393a02bc189 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -3654,6 +3654,14 @@ finish_struct_1 (t) cp_error_at ("multiple fields in union `%T' initialized"); any_default_members = 1; } + + { + unsigned int min_align = (DECL_PACKED (x) ? BITS_PER_UNIT + : TYPE_ALIGN (TREE_TYPE (x))); + /* Non-bit-fields are aligned for their type, except packed + fields which require only BITS_PER_UNIT alignment. */ + DECL_ALIGN (x) = MAX (DECL_ALIGN (x), min_align); + } } } -- 2.43.5