add support for the LONG_LONG_MIN/LONG_LONG_MAX/ULONG_LONG_MAX limits.h GNU extensions.
authorChris Lattner <sabre@nondot.org>
Wed, 1 Apr 2009 00:44:37 +0000 (00:44 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 1 Apr 2009 00:44:37 +0000 (00:44 +0000)
rdar://6740292

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

lib/Headers/limits.h

index 1f542ea3d8b423803e3530cc3691d4c0561263b0..e4909ab034e644060938c84d1533ecf4763cd264 100644 (file)
 #define ULLONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL)
 #endif
 
+/* LONG_LONG_MIN/LONG_LONG_MAX/ULONG_LONG_MAX are a GNU extension.  It's too bad
+   that we don't have something like #pragma poison that could be used to
+   deprecate a macro - the code should just use LLONG_MAX and friends.
+ */
+#if defined(__GNU_LIBRARY__) ? defined(__USE_GNU) : !defined(__STRICT_ANSI__)
+
+#undef   LONG_LONG_MIN
+#undef   LONG_LONG_MAX
+#undef   ULONG_LONG_MAX
+
+#define LONG_LONG_MAX  __LONG_LONG_MAX__
+#define LONG_LONG_MIN  (-__LONG_LONG_MAX__-1LL)
+#define ULONG_LONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL)
+#endif
+
 #endif /* __CLANG_LIMITS_H */