]> granicus.if.org Git - clang/commitdiff
Fix limits.h for linux, as glibc does a #include_next unless
authorMike Stump <mrs@apple.com>
Thu, 12 Feb 2009 23:06:31 +0000 (23:06 +0000)
committerMike Stump <mrs@apple.com>
Thu, 12 Feb 2009 23:06:31 +0000 (23:06 +0000)
_GCC_LIMITS_H_ is defined, when __GNUC__ is defined.

Also, we need to stay away from possible conflicts with header guards.
We should use CLANG_ to prefix all header guards.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64408 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Headers/limits.h
test/Preprocessor/clang_headers.c [new file with mode: 0644]

index 2e0deaff52f35beaa9840ea238a55514e79938f9..1f542ea3d8b423803e3530cc3691d4c0561263b0 100644 (file)
  *
 \*===----------------------------------------------------------------------===*/
 
-#ifndef __LIMITS_H
-#define __LIMITS_H
+#ifndef __CLANG_LIMITS_H
+#define __CLANG_LIMITS_H
+
+/* The system's limits.h may, in turn, try to #include_next GCC's limits.h.
+   Avert this #include_next madness. */
+#if defined __GNUC__ && !defined _GCC_LIMITS_H_
+#define _GCC_LIMITS_H_
+#endif
 
 /* System headers include a number of constants from POSIX in <limits.h>. */
 #include_next <limits.h>
@@ -90,4 +96,4 @@
 #define ULLONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL)
 #endif
 
-#endif /* __LIMITS_H */
+#endif /* __CLANG_LIMITS_H */
diff --git a/test/Preprocessor/clang_headers.c b/test/Preprocessor/clang_headers.c
new file mode 100644 (file)
index 0000000..4fa6153
--- /dev/null
@@ -0,0 +1,3 @@
+// RUN: clang -E %s
+
+#include <limits.h>