OSDN Git Service

* decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 8 Dec 2004 11:26:20 +0000 (11:26 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 8 Dec 2004 11:26:20 +0000 (11:26 +0000)
commit3b82dd726961e9d48415a650d3723c1beec78fb4
tree86e8b03a0b8b8a40bb0b8af7e1f70a28d75256c7
parent0a90e223f7c06e6df1d45de16b99cdad84166dec
* decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
TYPE_SIZE_UNIT of result type if SIZE is not specified.
(make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
of a bitfield, which we know is useless and causes trouble because of
alignment implications.

* utils.c (create_var_decl): Set DECL_COMMON again on targets without
BSS sections.
(process_attributes): Clear DECL_COMMON again when a section attribute
is present.
(finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
(create_field_decl): Special case ADDRESSABLE negative to mean
"no bitfield creation", to be used by make_aligning_type. Don't
restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
fields claimed addressable still have to be bitfields. Use
value_factor_p instead of a raw binop construction to check for the
position's alignment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91879 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ada/decl.c
gcc/ada/utils.c