[clang] Ensure proper NULL macro definition for system include files. (PR #149176)
Jamie Schmeiser via cfe-commits
cfe-commits at lists.llvm.org
Thu Jul 17 10:01:35 PDT 2025
================
@@ -0,0 +1,15 @@
+// There are at least 2 valid C null-pointer constants as defined
+// by the C language standard.
+// Test that the macro NULL is defined consistently for all platforms by
+// those headers that the C standard mandates a macro definition for NULL.
+
+// RUN: %clang %s -Dheader="<locale.h>" -E | tail -1 | FileCheck %s
+// RUN: %clang %s -Dheader="<stdio.h>" -E | tail -1 | FileCheck %s
+// RUN: %clang %s -Dheader="<stdlib.h>" -E | tail -1 | FileCheck %s
+// RUN: %clang %s -Dheader="<string.h>" -E | tail -1 | FileCheck %s
+// RUN: %clang %s -Dheader="<time.h>" -E | tail -1 | FileCheck %s
+// RUN: %clang %s -Dheader="<wchar.h>" -E | tail -1 | FileCheck %s
----------------
jamieschmeiser wrote:
How can that happen? According to https://clang.llvm.org/docs/CrossCompilation.html: `If you don’t specify the target, CPU names won’t match (since Clang assumes the host triple), and the compilation will go ahead, creating code for the host platform`. There is no target specified so it will not be cross-compiling.
Is there something that you would suggest to alleviate your concerns?
https://github.com/llvm/llvm-project/pull/149176
More information about the cfe-commits
mailing list