diff --git a/include/llvm/Support/MD5.h b/include/llvm/Support/MD5.h
index 810d448..38bdbae 100644
--- a/include/llvm/Support/MD5.h
+++ b/include/llvm/Support/MD5.h
@@ -41,16 +41,16 @@
 
   MD5_u32plus a, b, c, d;
   MD5_u32plus hi, lo;
-  unsigned char buffer[64];
+  uint8_t buffer[64];
   MD5_u32plus block[16];
 
 public:
-  typedef unsigned char MD5Result[16];
+  typedef uint8_t MD5Result[16];
 
   MD5();
 
   /// \brief Updates the hash for arguments provided.
-  void update(ArrayRef<unsigned char> Data);
+  void update(ArrayRef<uint8_t> Data);
 
   /// \brief Finishes off the hash and puts the result in result.
   void final(MD5Result &result);
@@ -60,7 +60,7 @@
   static void stringifyResult(MD5Result &Res, SmallString<32> &Str);
 
 private:
-  const unsigned char *body(ArrayRef<unsigned char> Data);
+  const uint8_t *body(ArrayRef<uint8_t> Data);
 };
 
 }
diff --git a/lib/Support/MD5.cpp b/lib/Support/MD5.cpp
index 6cd040b..ce99ab6 100644
--- a/lib/Support/MD5.cpp
+++ b/lib/Support/MD5.cpp
@@ -72,8 +72,8 @@
 
 /// \brief This processes one or more 64-byte data blocks, but does NOT update
 ///the bit counters.  There are no alignment requirements.
-const unsigned char *MD5::body(ArrayRef<unsigned char> Data) {
-  const unsigned char *ptr;
+const uint8_t *MD5::body(ArrayRef<uint8_t> Data) {
+  const uint8_t *ptr;
   MD5_u32plus a, b, c, d;
   MD5_u32plus saved_a, saved_b, saved_c, saved_d;
   unsigned long Size = Data.size();
@@ -184,10 +184,10 @@
 }
 
 /// Incrementally add \p size of \p data to the hash.
-void MD5::update(ArrayRef<unsigned char> Data) {
+void MD5::update(ArrayRef<uint8_t> Data) {
   MD5_u32plus saved_lo;
   unsigned long used, free;
-  const unsigned char *Ptr = Data.data();
+  const uint8_t *Ptr = Data.data();
   unsigned long Size = Data.size();
 
   saved_lo = lo;
@@ -208,11 +208,11 @@
     memcpy(&buffer[used], Ptr, free);
     Ptr = Ptr + free;
     Size -= free;
-    body(ArrayRef<unsigned char>(buffer, 64));
+    body(ArrayRef<uint8_t>(buffer, 64));
   }
 
   if (Size >= 64) {
-    Ptr = body(ArrayRef<unsigned char>(Ptr, Size & ~(unsigned long) 0x3f));
+    Ptr = body(ArrayRef<uint8_t>(Ptr, Size & ~(unsigned long) 0x3f));
     Size &= 0x3f;
   }
 
@@ -232,7 +232,7 @@
 
   if (free < 8) {
     memset(&buffer[used], 0, free);
-    body(ArrayRef<unsigned char>(buffer, 64));
+    body(ArrayRef<uint8_t>(buffer, 64));
     used = 0;
     free = 64;
   }
@@ -249,7 +249,7 @@
   buffer[62] = hi >> 16;
   buffer[63] = hi >> 24;
 
-  body(ArrayRef<unsigned char>(buffer, 64));
+  body(ArrayRef<uint8_t>(buffer, 64));
 
   result[0] = a;
   result[1] = a >> 8;
