expr.c (expand_expr_real_2): Reduce all integral types to bitfield precision.
authorRichard Guenther <rguenther@suse.de>
Wed, 15 Jun 2011 11:28:13 +0000 (11:28 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 15 Jun 2011 11:28:13 +0000 (11:28 +0000)
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

gcc/ChangeLog
gcc/expr.c

index 959edbb8c11d0eaa516b9bfa55c58e89f1e349ec..d52725cadf852de3e295c5a7aeccddc46d7c9e7b 100644 (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
index c4bba281cd8c6cbd88f9314f32f06492382339a9..9535c9671686d7ec48c09c122af1aad95f297cf1 100644 (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