[libc-commits] [libc] [libc] Add NULL macro definitions to header files (PR #142764)

via libc-commits libc-commits at lists.llvm.org
Wed Jun 4 03:47:20 PDT 2025


https://github.com/saturn691 created https://github.com/llvm/llvm-project/pull/142764

By the C standard, <locale.h>, <stddef.h> <stdio.h>, <stdlib.h>, <string.h>, <time.h>, and <wchar.h> require NULL to be defined.

>From 5b598dab9786a11ea7c80f2febd55e298aa62d27 Mon Sep 17 00:00:00 2001
From: William Huynh <William.Huynh at arm.com>
Date: Wed, 4 Jun 2025 11:44:39 +0100
Subject: [PATCH] [libc] Add NULL macro definitions to header files

By the C standard, <locale.h>, <stddef.h> <stdio.h>, <stdlib.h>,
<string.h>, <time.h>, and <wchar.h> require NULL to be defined.
---
 libc/include/CMakeLists.txt | 5 +++++
 libc/include/locale.h.def   | 2 +-
 libc/include/stdio.h.def    | 1 +
 libc/include/stdlib.h.def   | 1 +
 libc/include/time.h.def     | 1 +
 libc/include/wchar.h.def    | 1 +
 6 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/libc/include/CMakeLists.txt b/libc/include/CMakeLists.txt
index 7209e10c68b8f..55268d19529c7 100644
--- a/libc/include/CMakeLists.txt
+++ b/libc/include/CMakeLists.txt
@@ -255,6 +255,7 @@ add_header_macro(
   time.h
   DEPENDS
     .llvm_libc_common_h
+    .llvm-libc-macros.null_macro
     .llvm-libc-macros.time_macros
     .llvm-libc-types.clock_t
     .llvm-libc-types.time_t
@@ -329,6 +330,7 @@ add_header_macro(
   stdio.h
   DEPENDS
     .llvm-libc-macros.file_seek_macros
+    .llvm-libc-macros.null_macro
     .llvm-libc-macros.stdio_macros
     .llvm-libc-types.FILE
     .llvm-libc-types.cookie_io_functions_t
@@ -343,6 +345,7 @@ add_header_macro(
   ../libc/include/stdlib.yaml
   stdlib.h
   DEPENDS
+    .llvm-libc-macros.null_macro
     .llvm-libc-macros.stdlib_macros
     .llvm-libc-types.__atexithandler_t
     .llvm-libc-types.__qsortcompare_t
@@ -709,6 +712,7 @@ add_header_macro(
   wchar.h
   DEPENDS
     .llvm_libc_common_h
+    .llvm-libc-macros.null_macro
     .llvm-libc-macros.wchar_macros
     .llvm-libc-types.mbstate_t
     .llvm-libc-types.size_t
@@ -723,6 +727,7 @@ add_header_macro(
   DEPENDS
     .llvm_libc_common_h
     .llvm-libc-macros.locale_macros
+    .llvm-libc-macros.null_macro
     .llvm-libc-types.locale_t
     .llvm-libc-types.struct_lconv
 )
diff --git a/libc/include/locale.h.def b/libc/include/locale.h.def
index 930373eade4d5..83b7e5738dd1b 100644
--- a/libc/include/locale.h.def
+++ b/libc/include/locale.h.def
@@ -10,8 +10,8 @@
 #define LLVM_LIBC_LOCALE_H
 
 #include "__llvm-libc-common.h"
-
 #include "llvm-libc-macros/locale-macros.h"
+#include "llvm-libc-macros/null-macro.h"
 
 %%public_api()
 
diff --git a/libc/include/stdio.h.def b/libc/include/stdio.h.def
index 78d800c83b514..9ed8189eb74bb 100644
--- a/libc/include/stdio.h.def
+++ b/libc/include/stdio.h.def
@@ -11,6 +11,7 @@
 
 #include "__llvm-libc-common.h"
 #include "llvm-libc-macros/file-seek-macros.h"
+#include "llvm-libc-macros/null-macro.h"
 #include "llvm-libc-macros/stdio-macros.h"
 
 #include <stdarg.h>
diff --git a/libc/include/stdlib.h.def b/libc/include/stdlib.h.def
index d523f7a53024a..6d86c6962bf0c 100644
--- a/libc/include/stdlib.h.def
+++ b/libc/include/stdlib.h.def
@@ -10,6 +10,7 @@
 #define LLVM_LIBC_STDLIB_H
 
 #include "__llvm-libc-common.h"
+#include "llvm-libc-macros/null-macro.h"
 #include "llvm-libc-macros/stdlib-macros.h"
 
 %%public_api()
diff --git a/libc/include/time.h.def b/libc/include/time.h.def
index 2355e8822fad7..1658d48e0fa0f 100644
--- a/libc/include/time.h.def
+++ b/libc/include/time.h.def
@@ -10,6 +10,7 @@
 #define LLVM_LIBC_TIME_H
 
 #include "__llvm-libc-common.h"
+#include "llvm-libc-macros/null-macro.h"
 #include "llvm-libc-macros/time-macros.h"
 
 %%public_api()
diff --git a/libc/include/wchar.h.def b/libc/include/wchar.h.def
index 4c25de700d606..becfccd4c899d 100644
--- a/libc/include/wchar.h.def
+++ b/libc/include/wchar.h.def
@@ -10,6 +10,7 @@
 #define LLVM_LIBC_WCHAR_H
 
 #include "__llvm-libc-common.h"
+#include "llvm-libc-macros/null-macro.h"
 #include "llvm-libc-macros/wchar-macros.h"
 
 %%public_api()



More information about the libc-commits mailing list