19552aa572
* 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. From-SVN: r37428
54 lines
1.6 KiB
C
54 lines
1.6 KiB
C
/* Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
|
|
|
|
This file is part of GNU CC.
|
|
|
|
GNU CC is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2, or (at your option)
|
|
any later version.
|
|
|
|
GNU CC is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with GNU CC; see the file COPYING. If not, write to
|
|
the Free Software Foundation, 59 Temple Place - Suite 330,
|
|
Boston, MA 02111-1307, USA. */
|
|
|
|
/* As a special exception, if you include this header file into source
|
|
files compiled by GCC, this header file does not by itself cause
|
|
the resulting executable to be covered by the GNU General Public
|
|
License. This exception does not however invalidate any other
|
|
reasons why the executable file might be covered by the GNU General
|
|
Public License. */
|
|
|
|
/*
|
|
* ISO C Standard: 7.16 Boolean type and values <stdbool.h>
|
|
*/
|
|
|
|
#ifndef _STDBOOL_H
|
|
#define _STDBOOL_H
|
|
|
|
#ifndef __cplusplus
|
|
|
|
#define bool _Bool
|
|
#define true 1
|
|
#define false 0
|
|
|
|
#else /* __cplusplus */
|
|
|
|
/* Supporting <stdbool.h> in C++ is a GCC extension. */
|
|
#define _Bool bool
|
|
#define bool bool
|
|
#define false false
|
|
#define true true
|
|
|
|
#endif /* __cplusplus */
|
|
|
|
/* Signal that all the definitions are present. */
|
|
#define __bool_true_false_are_defined 1
|
|
|
|
#endif /* stdbool.h */
|