From 253a514a79c5b4524df61e5a58a194eaed982f47 Mon Sep 17 00:00:00 2001 From: Christoph Mallon Date: Mon, 10 Nov 2008 09:38:26 +0000 Subject: [PATCH] In C++ the result type of !, <, <=, >=, >, == and != is bool. [r23539] --- parser.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/parser.c b/parser.c index 3865da7..5ff6397 100644 --- a/parser.c +++ b/parser.c @@ -8167,7 +8167,7 @@ static void semantic_not(unary_expression_t *expression) warn_function_address_as_bool(expression->value); - expression->base.type = type_int; + expression->base.type = c_mode & _CXX ? type_bool : type_int; } static void semantic_unexpr_integer(unary_expression_t *expression) @@ -8628,7 +8628,7 @@ static void semantic_comparison(binary_expression_t *expression) &expression->base.source_position, type_left, type_right); } - expression->base.type = type_int; + expression->base.type = c_mode & _CXX ? type_bool : type_int; } /** @@ -8777,7 +8777,7 @@ static void semantic_logical_op(binary_expression_t *expression) return; } - expression->base.type = type_int; + expression->base.type = c_mode & _CXX ? type_bool : type_int; } /** -- 2.20.1