diff options
Diffstat (limited to 'compat/stdbool.h')
-rw-r--r-- | compat/stdbool.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/compat/stdbool.h b/compat/stdbool.h new file mode 100644 index 0000000..6e74c58 --- /dev/null +++ b/compat/stdbool.h @@ -0,0 +1,37 @@ +/*===---- stdbool.h - Standard header for booleans -------------------------=== +* +* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +* See https://llvm.org/LICENSE.txt for license information. +* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +* +* Modified for use by pre-C99 compilers. (c) Jan Nijtmans. +* +*===-----------------------------------------------------------------------=== +*/ + +#ifndef __STDBOOL_H +#define __STDBOOL_H + +/* Don't define bool, true, and false in C++, except as a GNU extension. */ +#ifndef __cplusplus +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) +#define bool _Bool +#else +#define bool unsigned char +#endif +#define true 1 +#define false 0 +#elif defined(__GNUC__) && !defined(__STRICT_ANSI__) +/* Define _Bool as a GNU extension. */ +#define _Bool bool +#if __cplusplus < 201103L +/* For C++98, define bool, false, true as a GNU extension. */ +#define bool bool +#define false false +#define true true +#endif +#endif + +#define __bool_true_false_are_defined 1 + +#endif /* __STDBOOL_H */ |