_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
*
\*===----------------------------------------------------------------------===*/
-#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>
#define ULLONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL)
#endif
-#endif /* __LIMITS_H */
+#endif /* __CLANG_LIMITS_H */
--- /dev/null
+// RUN: clang -E %s
+
+#include <limits.h>