]> granicus.if.org Git - clang/commitdiff
Add a function to MD5 a file's contents.
authorZachary Turner <zturner@google.com>
Mon, 20 Mar 2017 23:33:18 +0000 (23:33 +0000)
committerZachary Turner <zturner@google.com>
Mon, 20 Mar 2017 23:33:18 +0000 (23:33 +0000)
In doing so, clean up the MD5 interface a little.  Most
existing users only care about the lower 8 bytes of an MD5,
but for some users that care about the upper and lower,
there wasn't a good interface.  Furthermore, consumers
of the MD5 checksum were required to handle endianness
details on their own, so it seems reasonable to abstract
this into a nicer interface that just gives you the right
value.

Differential Revision: https://reviews.llvm.org/D31105

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

lib/CodeGen/CodeGenPGO.cpp
lib/Frontend/ASTUnit.cpp

index 90711b5479408948ce6d7162d5eba83385fd2802..6acedc033a6ea1d61b1958c2351968fef11a6a52 100644 (file)
@@ -612,7 +612,7 @@ uint64_t PGOHash::finalize() {
   llvm::MD5::MD5Result Result;
   MD5.final(Result);
   using namespace llvm::support;
-  return endian::read<uint64_t, little, unaligned>(Result);
+  return Result.low();
 }
 
 void CodeGenPGO::assignRegionCounters(GlobalDecl GD, llvm::Function *Fn) {
index 952992a9e8b70384b8a08de261f977228f8fed31..2acdc6494f8529a7518e81e7e24a51b6c11874cc 100644 (file)
@@ -1252,7 +1252,7 @@ ASTUnit::PreambleFileHash::createForFile(off_t Size, time_t ModTime) {
   PreambleFileHash Result;
   Result.Size = Size;
   Result.ModTime = ModTime;
-  memset(Result.MD5, 0, sizeof(Result.MD5));
+  Result.MD5 = {};
   return Result;
 }
 
@@ -1273,7 +1273,7 @@ namespace clang {
 bool operator==(const ASTUnit::PreambleFileHash &LHS,
                 const ASTUnit::PreambleFileHash &RHS) {
   return LHS.Size == RHS.Size && LHS.ModTime == RHS.ModTime &&
-         memcmp(LHS.MD5, RHS.MD5, sizeof(LHS.MD5)) == 0;
+         LHS.MD5 == RHS.MD5;
 }
 } // namespace clang