OSDN Git Service

2011-06-15 Richard Guenther <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 15 Jun 2011 11:28:13 +0000 (11:28 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 15 Jun 2011 11:28:13 +0000 (11:28 +0000)
* expr.c (expand_expr_real_2): Reduce all integral types to
bitfield precision.
(expand_expr_real_1): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@175078 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/expr.c

index 959edbb..d52725c 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 c4bba28..9535c96 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