aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-04-01 00:44:37 +0000
committerChris Lattner <sabre@nondot.org>2009-04-01 00:44:37 +0000
commit2fc47b54ee2ef1419c0af4c80d52260b34056b85 (patch)
tree14d8f41a79729b89a14fc87c1a35769a12f85739
parentc8dee9ce29686d3230ecfdc651542934d1f661c8 (diff)
add support for the LONG_LONG_MIN/LONG_LONG_MAX/ULONG_LONG_MAX limits.h GNU extensions.
rdar://6740292 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68169 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Headers/limits.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/Headers/limits.h b/lib/Headers/limits.h
index 1f542ea3d8..e4909ab034 100644
--- a/lib/Headers/limits.h
+++ b/lib/Headers/limits.h
@@ -96,4 +96,19 @@
#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 */