expr.c (expand_expr_real_2): Reduce all integral types to bitfield precision.

2011-06-15  Richard Guenther  <rguenther@suse.de>

	* expr.c (expand_expr_real_2): Reduce all integral types to
	bitfield precision.
	(expand_expr_real_1): Likewise.

From-SVN: r175078
This commit is contained in:
Richard Guenther 2011-06-15 11:28:13 +00:00 committed by Richard Biener
parent 93536c9742
commit a577c4054f
2 changed files with 8 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2011-06-15 Richard Guenther <rguenther@suse.de>
* expr.c (expand_expr_real_2): Reduce all integral types to
bitfield precision.
(expand_expr_real_1): Likewise.
2011-06-15 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/48613

View File

@ -7265,7 +7265,7 @@ expand_expr_real_2 (sepops ops, rtx target, enum machine_mode tmode,
/* An operation in what may be a bit-field type needs the
result to be reduced to the precision of the bit-field type,
which is narrower than that of the type's mode. */
reduce_bit_field = (TREE_CODE (type) == INTEGER_TYPE
reduce_bit_field = (INTEGRAL_TYPE_P (type)
&& GET_MODE_PRECISION (mode) > TYPE_PRECISION (type));
if (reduce_bit_field && modifier == EXPAND_STACK_PARM)
@ -8334,7 +8334,7 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
result to be reduced to the precision of the bit-field type,
which is narrower than that of the type's mode. */
reduce_bit_field = (!ignore
&& TREE_CODE (type) == INTEGER_TYPE
&& INTEGRAL_TYPE_P (type)
&& GET_MODE_PRECISION (mode) > TYPE_PRECISION (type));
/* If we are going to ignore this result, we need only do something