[clang] [clang][headers][Apple] Don't include_next float.h to avoid an unnecessary module dependency (PR #137432)
Ian Anderson via cfe-commits
cfe-commits at lists.llvm.org
Fri Apr 25 19:20:47 PDT 2025
https://github.com/ian-twilightcoder created https://github.com/llvm/llvm-project/pull/137432
float.h doesn't define anything in Apple's SDKs that the clang float.h doesn't undefine, so all the include_next does is add an unnecessary module dependency. Skip the include_next and completely shadow the SDK header.
>From 398d6e7ca77c68de61f83c013e973a52fbfef034 Mon Sep 17 00:00:00 2001
From: Ian Anderson <iana at apple.com>
Date: Fri, 25 Apr 2025 19:15:19 -0700
Subject: [PATCH] [clang][headers][Apple] Don't include_next float.h to avoid
an unnecessary module dependency
float.h doesn't define anything in Apple's SDKs that the clang float.h doesn't undefine, so all the include_next does is add an unnecessary module dependency. Skip the include_next and completely shadow the SDK header.
---
clang/lib/Headers/float.h | 13 ++-----------
1 file changed, 2 insertions(+), 11 deletions(-)
diff --git a/clang/lib/Headers/float.h b/clang/lib/Headers/float.h
index e5c439a9d47ae..84551af473b28 100644
--- a/clang/lib/Headers/float.h
+++ b/clang/lib/Headers/float.h
@@ -18,21 +18,12 @@
* additional definitions provided for Windows.
* For more details see http://msdn.microsoft.com/en-us/library/y0ybw9fy.aspx
*
- * Also fall back on Darwin and AIX to allow additional definitions and
+ * Also fall back on AIX to allow additional definitions and
* implementation-defined values.
*/
-#if (defined(__APPLE__) || defined(__MINGW32__) || defined(_MSC_VER) || \
- defined(_AIX)) && \
+#if (defined(__MINGW32__) || defined(_MSC_VER) || defined(_AIX)) && \
__STDC_HOSTED__ && __has_include_next(<float.h>)
-/* Prior to Apple's 10.7 SDK, float.h SDK header used to apply an extra level
- * of #include_next<float.h> to keep Metrowerks compilers happy. Avoid this
- * extra indirection.
- */
-#ifdef __APPLE__
-#define _FLOAT_H_
-#endif
-
# include_next <float.h>
/* Undefine anything that we'll be redefining below. */
More information about the cfe-commits
mailing list