summaryrefslogtreecommitdiffstats
path: root/compat/stdbool.h
diff options
context:
space:
mode:
Diffstat (limited to 'compat/stdbool.h')
-rw-r--r--compat/stdbool.h37
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 */