OSDN Git Service

(truthvalue_conversion, BIT_AND_EXPR): Make sure that the result has
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 31 May 1995 11:31:46 +0000 (11:31 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 31 May 1995 11:31:46 +0000 (11:31 +0000)
boolean_type_node.

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

gcc/c-common.c

index acd66d0..dac7d80 100644 (file)
@@ -2103,8 +2103,11 @@ truthvalue_conversion (expr)
                                            TREE_OPERAND (expr, 1))), 1);
 
     case BIT_AND_EXPR:
-      if (integer_onep (TREE_OPERAND (expr, 1)))
-       return expr;
+      if (integer_onep (TREE_OPERAND (expr, 1))
+         && TREE_TYPE (expr) != boolean_type_node)
+       /* Using convert here would cause infinite recursion.  */
+       return build1 (NOP_EXPR, boolean_type_node, expr);
+      break;
 
     case MODIFY_EXPR:
       if (warn_parentheses && C_EXP_ORIGINAL_CODE (expr) == MODIFY_EXPR)