AddressSanitizer: get rid of limits.h, use constants for fixed size integral types instead.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@151159 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/asan/asan_interceptors.cc b/lib/asan/asan_interceptors.cc
index df281ec..b1f7ef4 100644
--- a/lib/asan/asan_interceptors.cc
+++ b/lib/asan/asan_interceptors.cc
@@ -24,7 +24,6 @@
#include "interception/interception.h"
#include <new>
-#include <limits.h>
#if defined(_WIN32)
// FIXME: remove when we start intercepting on Windows. Currently it's needed to
@@ -132,9 +131,9 @@
nptr++;
}
while (IsDigit(*nptr)) {
- res = (res <= ULLONG_MAX / 10) ? res * 10 : ULLONG_MAX;
+ res = (res <= UINT64_MAX / 10) ? res * 10 : UINT64_MAX;
int digit = ((*nptr) - '0');
- res = (res <= ULLONG_MAX - digit) ? res + digit : ULLONG_MAX;
+ res = (res <= UINT64_MAX - digit) ? res + digit : UINT64_MAX;
have_digits = true;
nptr++;
}
@@ -142,9 +141,9 @@
*endptr = (have_digits) ? (char*)nptr : old_nptr;
}
if (sgn > 0) {
- return (int64_t)(Min((uint64_t)LLONG_MAX, res));
+ return (int64_t)(Min((uint64_t)INT64_MAX, res));
} else {
- return (res > LLONG_MAX) ? LLONG_MIN : ((int64_t)res * -1);
+ return (res > INT64_MAX) ? INT64_MIN : ((int64_t)res * -1);
}
}
diff --git a/lib/asan/asan_internal.h b/lib/asan/asan_internal.h
index 0993b75..a67d034 100644
--- a/lib/asan/asan_internal.h
+++ b/lib/asan/asan_internal.h
@@ -59,6 +59,22 @@
#endif
#endif
+// Limits for integral types. We have to redefine it in case we don't
+// have stdint.h (like in Visual Studio 9).
+#if __WORDSIZE == 64
+# define __INT64_C(c) c ## L
+# define __UINT64_C(c) c ## UL
+#else
+# define __INT64_C(c) c ## LL
+# define __UINT64_C(c) c ## ULL
+#endif // __WORDSIZE == 64
+# define INT32_MIN (-2147483647-1)
+# define INT32_MAX (2147483647)
+# define UINT32_MAX (4294967295U)
+# define INT64_MIN (-__INT64_C(9223372036854775807)-1)
+# define INT64_MAX (__INT64_C(9223372036854775807))
+# define UINT64_MAX (__UINT64_C(18446744073709551615))
+
#if defined(__linux__)
# define ASAN_LINUX 1
#else