xref: /freebsd/contrib/llvm-project/clang/lib/Headers/stdbool.h (revision 5036d9652a5701d00e9e40ea942c278e9f77d33d)
1 /*===---- stdbool.h - Standard header for booleans -------------------------===
2  *
3  * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4  * See https://llvm.org/LICENSE.txt for license information.
5  * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6  *
7  *===-----------------------------------------------------------------------===
8  */
9 
10 #ifndef __STDBOOL_H
11 #define __STDBOOL_H
12 
13 #define __bool_true_false_are_defined 1
14 
15 #if defined(__MVS__) && __has_include_next(<stdbool.h>)
16 #include_next <stdbool.h>
17 #else
18 
19 #if defined(__STDC_VERSION__) && __STDC_VERSION__ > 201710L
20 /* FIXME: We should be issuing a deprecation warning here, but cannot yet due
21  * to system headers which include this header file unconditionally.
22  */
23 #elif !defined(__cplusplus)
24 #define bool _Bool
25 #define true 1
26 #define false 0
27 #elif defined(__GNUC__) && !defined(__STRICT_ANSI__)
28 /* Define _Bool as a GNU extension. */
29 #define _Bool bool
30 #if defined(__cplusplus) && __cplusplus < 201103L
31 /* For C++98, define bool, false, true as a GNU extension. */
32 #define bool bool
33 #define false false
34 #define true true
35 #endif
36 #endif
37 
38 #endif /* __MVS__ */
39 #endif /* __STDBOOL_H */
40