diff options
author | Richard Stallman <rms@gnu.org> | 1993-09-14 12:13:39 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-09-14 12:13:39 +0000 |
commit | da57b63af981a013f90a2e91b65766e55ab820c8 (patch) | |
tree | cf07e679a9e715e80a487e6c0c8cfc470cd80bd4 | |
parent | 94ba50696434bfaf90030d9b51959695accaec0b (diff) | |
download | gcc-da57b63af981a013f90a2e91b65766e55ab820c8.zip gcc-da57b63af981a013f90a2e91b65766e55ab820c8.tar.gz gcc-da57b63af981a013f90a2e91b65766e55ab820c8.tar.bz2 |
(layout_record): Turn off PCC_BITFIELD_TYPE_MATTERS
rounding of field bitpos, if maximum_field_alignment is nonzero.
From-SVN: r5318
-rw-r--r-- | gcc/stor-layout.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c index fb527a3..5504678 100644 --- a/gcc/stor-layout.c +++ b/gcc/stor-layout.c @@ -410,15 +410,14 @@ layout_record (rec) && TREE_TYPE (field) != error_mark_node && DECL_BIT_FIELD_TYPE (field) && !DECL_PACKED (field) + /* If #pragma pack is in effect, turn off this feature. */ + && maximum_field_alignment == 0 && !integer_zerop (DECL_SIZE (field))) { int type_align = TYPE_ALIGN (TREE_TYPE (field)); register tree dsize = DECL_SIZE (field); int field_size = TREE_INT_CST_LOW (dsize); - if (maximum_field_alignment != 0) - type_align = MIN (type_align, maximum_field_alignment); - /* A bit field may not span the unit of alignment of its type. Advance to next boundary if necessary. */ /* ??? There is some uncertainty here as to what |