aboutsummaryrefslogtreecommitdiff
path: root/lib/include/__stddef_null.h
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2024-04-25 14:59:29 -0700
committerAndrew Kelley <andrew@ziglang.org>2024-05-08 19:37:28 -0700
commit70c85b1bf1c07db4420e8431c3322bfeb87688ee (patch)
tree646b310e667401cc2c44595e6eb69fc52637a8d9 /lib/include/__stddef_null.h
parente4029b9943a834bf5fc23e620f0dfc0ea18648f4 (diff)
downloadzig-70c85b1bf1c07db4420e8431c3322bfeb87688ee.tar.gz
zig-70c85b1bf1c07db4420e8431c3322bfeb87688ee.zip
update C language headers to LLVM 18
release/18.x branch, commit 78b99c73ee4b96fe9ce0e294d4632326afb2db42
Diffstat (limited to 'lib/include/__stddef_null.h')
-rw-r--r--lib/include/__stddef_null.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/include/__stddef_null.h b/lib/include/__stddef_null.h
new file mode 100644
index 0000000000..c10bd2d7d9
--- /dev/null
+++ b/lib/include/__stddef_null.h
@@ -0,0 +1,29 @@
+/*===---- __stddef_null.h - Definition of NULL -----------------------------===
+ *
+ * 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
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#if !defined(NULL) || !__building_module(_Builtin_stddef)
+
+/* linux/stddef.h will define NULL to 0. glibc (and other) headers then define
+ * __need_NULL and rely on stddef.h to redefine NULL to the correct value again.
+ * Modules don't support redefining macros like that, but support that pattern
+ * in the non-modules case.
+ */
+#undef NULL
+
+#ifdef __cplusplus
+#if !defined(__MINGW32__) && !defined(_MSC_VER)
+#define NULL __null
+#else
+#define NULL 0
+#endif
+#else
+#define NULL ((void*)0)
+#endif
+
+#endif