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