1*06f32e7eSjoerg /*===---- stdbool.h - Standard header for booleans -------------------------===
2*06f32e7eSjoerg  *
3*06f32e7eSjoerg  * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*06f32e7eSjoerg  * See https://llvm.org/LICENSE.txt for license information.
5*06f32e7eSjoerg  * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*06f32e7eSjoerg  *
7*06f32e7eSjoerg  *===-----------------------------------------------------------------------===
8*06f32e7eSjoerg  */
9*06f32e7eSjoerg 
10*06f32e7eSjoerg #ifndef __STDBOOL_H
11*06f32e7eSjoerg #define __STDBOOL_H
12*06f32e7eSjoerg 
13*06f32e7eSjoerg /* Don't define bool, true, and false in C++, except as a GNU extension. */
14*06f32e7eSjoerg #ifndef __cplusplus
15*06f32e7eSjoerg #define bool _Bool
16*06f32e7eSjoerg #define true 1
17*06f32e7eSjoerg #define false 0
18*06f32e7eSjoerg #elif defined(__GNUC__) && !defined(__STRICT_ANSI__)
19*06f32e7eSjoerg /* Define _Bool as a GNU extension. */
20*06f32e7eSjoerg #define _Bool bool
21*06f32e7eSjoerg #if __cplusplus < 201103L
22*06f32e7eSjoerg /* For C++98, define bool, false, true as a GNU extension. */
23*06f32e7eSjoerg #define bool  bool
24*06f32e7eSjoerg #define false false
25*06f32e7eSjoerg #define true  true
26*06f32e7eSjoerg #endif
27*06f32e7eSjoerg #endif
28*06f32e7eSjoerg 
29*06f32e7eSjoerg #define __bool_true_false_are_defined 1
30*06f32e7eSjoerg 
31*06f32e7eSjoerg #endif /* __STDBOOL_H */
32