(layout_decl): Turn off DECL_BIT_FIELD for BLKmode that's properly

aligned and a multiple of a byte.

From-SVN: r11892
This commit is contained in:
Richard Kenner 1996-04-26 06:38:48 -04:00
parent 46d4a027e7
commit 977a7752c7

View File

@ -278,6 +278,14 @@ layout_decl (decl, known_align)
}
}
/* Turn off DECL_BIT_FIELD if we won't need it set. */
if (DECL_BIT_FIELD (decl) && TYPE_MODE (type) == BLKmode
&& known_align % TYPE_ALIGN (type) == 0
&& DECL_SIZE (decl) != 0
&& (TREE_CODE (DECL_SIZE (decl)) != INTEGER_CST
|| (TREE_INT_CST_LOW (DECL_SIZE (decl)) % BITS_PER_UNIT) == 0))
DECL_BIT_FIELD (decl) = 0;
/* Evaluate nonconstant size only once, either now or as soon as safe. */
if (DECL_SIZE (decl) != 0 && TREE_CODE (DECL_SIZE (decl)) != INTEGER_CST)
DECL_SIZE (decl) = variable_size (DECL_SIZE (decl));