From 28ed46164618631d07f5ddee9a9743c378d6cbcc Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Fri, 20 Jan 1995 05:57:47 +0000 Subject: bool changes From-SVN: r8775 --- gcc/cp/cp-tree.h | 2 +- gcc/cp/cvt.c | 26 +++++--------------------- 2 files changed, 6 insertions(+), 22 deletions(-) (limited to 'gcc') diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index 8b50002..f3d3764 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -1439,7 +1439,7 @@ extern tree delta_type_node; extern tree long_long_integer_type_node, long_long_unsigned_type_node; /* For building calls to `delete'. */ extern tree integer_two_node, integer_three_node; -extern tree bool_type_node, true_node, false_node; +extern tree boolean_type_node, boolean_true_node, boolean_false_node; /* in pt.c */ /* PARM_VEC is a vector of template parameters, either IDENTIFIER_NODEs or diff --git a/gcc/cp/cvt.c b/gcc/cp/cvt.c index 01d0a3d..4883e7b 100644 --- a/gcc/cp/cvt.c +++ b/gcc/cp/cvt.c @@ -1246,23 +1246,7 @@ cp_convert (type, expr, convtype, flags) return error_mark_node; } if (code == BOOLEAN_TYPE) - { - tree newe = truthvalue_conversion (e); - /* Avoid stupid (infinite) recursion from backend. */ - if (TREE_CODE (newe) != NOP_EXPR || e != TREE_OPERAND (newe, 0)) - e = newe; - if (TREE_TYPE (e) == bool_type_node) - return e; - else if (TREE_CODE (e) == INTEGER_CST) - { - if (e == integer_zero_node) - e = false_node; - else - e = true_node; - } - else - return build1 (NOP_EXPR, bool_type_node, e); - } + return truthvalue_conversion (e); return fold (convert_to_integer (type, e)); } if (code == POINTER_TYPE) @@ -1907,8 +1891,8 @@ build_default_binary_type_conversion (code, arg1, arg2) if (code == TRUTH_ANDIF_EXPR || code == TRUTH_ORIF_EXPR) { - *arg1 = convert (bool_type_node, *arg1); - *arg2 = convert (bool_type_node, *arg2); + *arg1 = convert (boolean_type_node, *arg1); + *arg2 = convert (boolean_type_node, *arg2); } else if (TYPE_HAS_INT_CONVERSION (type1)) { @@ -1971,7 +1955,7 @@ build_default_unary_type_conversion (code, arg) } if (code == TRUTH_NOT_EXPR) - *arg = convert (bool_type_node, *arg); + *arg = convert (boolean_type_node, *arg); else if (TYPE_HAS_INT_CONVERSION (type)) { if (TYPE_HAS_REAL_CONVERSION (type)) @@ -2006,7 +1990,7 @@ type_promotes_to (type) /* bool always promotes to int (not unsigned), even if it's the same size. */ - if (type == bool_type_node) + if (type == boolean_type_node) type = integer_type_node; /* Normally convert enums to int, but convert wide enums to something -- cgit v1.1