OSDN Git Service

* c-common.c (c_common_truthvalue_conversion): Use fold_build2
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 16 May 2005 19:40:35 +0000 (19:40 +0000)
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 16 May 2005 19:40:35 +0000 (19:40 +0000)
instead of build_binary_op when performing code transformations
to avoid error messages about constructs not it the user's code.

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

gcc/ChangeLog
gcc/c-common.c

index 9353bdb..5605cc2 100644 (file)
@@ -1,3 +1,9 @@
+2005-05-16  Roger Sayle  <roger@eyesopen.com>
+
+       * c-common.c (c_common_truthvalue_conversion): Use fold_build2
+       instead of build_binary_op when performing code transformations
+       to avoid error messages about constructs not it the user's code.
+
 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
 
        * tree-ssa-pre.c: Fix a comment typo.
index b2ba01e..ecbe402 100644 (file)
@@ -2462,12 +2462,12 @@ c_common_truthvalue_conversion (tree expr)
         two objects.  */
       if (TREE_TYPE (TREE_OPERAND (expr, 0))
          == TREE_TYPE (TREE_OPERAND (expr, 1)))
-       return build_binary_op (NE_EXPR, TREE_OPERAND (expr, 0),
-                               TREE_OPERAND (expr, 1), 1);
-      return build_binary_op (NE_EXPR, TREE_OPERAND (expr, 0),
-                             fold (build1 (NOP_EXPR,
-                                           TREE_TYPE (TREE_OPERAND (expr, 0)),
-                                           TREE_OPERAND (expr, 1))), 1);
+       return fold_build2 (NE_EXPR, truthvalue_type_node,
+                           TREE_OPERAND (expr, 0), TREE_OPERAND (expr, 1));
+      return fold_build2 (NE_EXPR, truthvalue_type_node,
+                         TREE_OPERAND (expr, 0),
+                         fold_convert (TREE_TYPE (TREE_OPERAND (expr, 0)),
+                                       TREE_OPERAND (expr, 1)));
 
     case BIT_AND_EXPR:
       if (integer_onep (TREE_OPERAND (expr, 1))