OSDN Git Service

2011-05-13 Kai Tietz <ktietz@redhat.com>
authorktietz <ktietz@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 May 2011 09:21:36 +0000 (09:21 +0000)
committerktietz <ktietz@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 May 2011 09:21:36 +0000 (09:21 +0000)
        PR middle-end/48984
        * gimplify.c (gimplify_expr): Check for boolean_type_node instead
        for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
        (gimple_boolify): Check for cast for boolean_type_node instead for
        BOOLEAN_TYPE.

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

gcc/ChangeLog
gcc/gimplify.c

index bd8db53..d9ae05a 100644 (file)
@@ -1,3 +1,11 @@
+2011-05-13  Kai Tietz  <ktietz@redhat.com>
+
+       PR middle-end/48984
+       * gimplify.c (gimplify_expr): Check for boolean_type_node instead
+       for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
+       (gimple_boolify): Check for cast for boolean_type_node instead for
+       BOOLEAN_TYPE.
+
 2011-05-13  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/48172
index c54d3b5..33a76a2 100644 (file)
@@ -2848,7 +2848,7 @@ gimple_boolify (tree expr)
     default:
       /* Other expressions that get here must have boolean values, but
         might need to be converted to the appropriate mode.  */
-      if (TREE_CODE (type) == BOOLEAN_TYPE)
+      if (type == boolean_type_node)
        return expr;
       return fold_convert_loc (loc, boolean_type_node, expr);
     }
@@ -6754,7 +6754,7 @@ gimplify_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p,
          }
 
        case TRUTH_NOT_EXPR:
-         if (TREE_CODE (TREE_TYPE (*expr_p)) != BOOLEAN_TYPE)
+         if (TREE_TYPE (*expr_p) != boolean_type_node)
            {
              tree type = TREE_TYPE (*expr_p);
              *expr_p = fold_convert (type, gimple_boolify (*expr_p));
@@ -7199,7 +7199,7 @@ gimplify_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p,
               fold_truth_not_expr) happily uses operand type and doesn't
               automatically uses boolean_type as result, we need to keep
               orignal type.  */
-           if (TREE_CODE (org_type) != BOOLEAN_TYPE)
+           if (org_type != boolean_type_node)
              {
                *expr_p = fold_convert (org_type, *expr_p);
                ret = GS_OK;