From 4f9a1c9b3be3ca4cb4139419f6f50a65557f229b Mon Sep 17 00:00:00 2001 From: jsm28 Date: Mon, 13 Nov 2000 14:14:44 +0000 Subject: * c-common.c (boolean_increment): New function. * c-common.h (enum c_tree_index): Add CTI_C_BOOL_TYPE, CTI_C_BOOL_TRUE and CTI_C_BOOL_FALSE. (c_bool_type_node, c_bool_true_node, c_bool_false_node): Define. (boolean_increment): Declare. * c-convert.c (convert): Allow for BOOLEAN_TYPE. * c-decl.c (init_decl_processing): Create boolean nodes. (finish_struct): Allow for _Bool bitfields. * c-parse.in (reswords): Add _Bool. (rid_to_yy): Allow for RID_BOOL. * c-typeck.c (default_conversion): Make booleans promote to int. (convert_arguments, build_unary_op, build_modify_expr, convert_for_assignment): Allow for booleans. * ginclude/stdbool.h: Make conforming to C99. cp: * typeck.c (build_unary_op): Use boolean_increment from c-common.c, moving the relevant code there. testsuite: * gcc.dg/c99-bool-1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37428 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/c-convert.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gcc/c-convert.c') diff --git a/gcc/c-convert.c b/gcc/c-convert.c index 5d7ea00f82b..7f57725b7c1 100644 --- a/gcc/c-convert.c +++ b/gcc/c-convert.c @@ -88,6 +88,8 @@ convert (type, expr) #endif if (code == INTEGER_TYPE || code == ENUMERAL_TYPE) return fold (convert_to_integer (type, e)); + if (code == BOOLEAN_TYPE) + return fold (build1 (NOP_EXPR, type, truthvalue_conversion (expr))); if (code == POINTER_TYPE || code == REFERENCE_TYPE) return fold (convert_to_pointer (type, e)); if (code == REAL_TYPE) -- cgit v1.2.1