summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Stump <mrs@apple.com>2009-02-12 23:06:31 +0000
committerMike Stump <mrs@apple.com>2009-02-12 23:06:31 +0000
commit6b63074de90b1e8ce93404a5445a389a1d6471d5 (patch)
tree4dff062b3334c4b174de6832f695376a7c52b0ed
parenteb6be650ce25cd80fa50f13fd94b1083742e85dc (diff)
downloadbcm5719-llvm-6b63074de90b1e8ce93404a5445a389a1d6471d5.tar.gz
bcm5719-llvm-6b63074de90b1e8ce93404a5445a389a1d6471d5.zip
Fix limits.h for linux, as glibc does a #include_next unless
_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. llvm-svn: 64408
-rw-r--r--clang/lib/Headers/limits.h12
-rw-r--r--clang/test/Preprocessor/clang_headers.c3
2 files changed, 12 insertions, 3 deletions
diff --git a/clang/lib/Headers/limits.h b/clang/lib/Headers/limits.h
index 2e0deaff52f..1f542ea3d8b 100644
--- a/clang/lib/Headers/limits.h
+++ b/clang/lib/Headers/limits.h
@@ -22,8 +22,14 @@
*
\*===----------------------------------------------------------------------===*/
-#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/clang/test/Preprocessor/clang_headers.c b/clang/test/Preprocessor/clang_headers.c
new file mode 100644
index 00000000000..4fa6153459f
--- /dev/null
+++ b/clang/test/Preprocessor/clang_headers.c
@@ -0,0 +1,3 @@
+// RUN: clang -E %s
+
+#include <limits.h>
OpenPOWER on IntegriCloud