Fix for 64-bit systems.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42253 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/clang/Analysis/DataflowValues.h b/include/clang/Analysis/DataflowValues.h
index 95ee094..1d77864 100644
--- a/include/clang/Analysis/DataflowValues.h
+++ b/include/clang/Analysis/DataflowValues.h
@@ -37,10 +37,10 @@
     static unsigned getHashValue(const clang::CFG::Edge& E) {
       const clang::CFGBlock* P1 = E.getSrc();
       const clang::CFGBlock* P2 = E.getDst();  
-      return (reinterpret_cast<unsigned>(P1) >> 4) ^
-      (reinterpret_cast<unsigned>(P1) >> 9) ^
-      (reinterpret_cast<unsigned>(P2) >> 5) ^
-      (reinterpret_cast<unsigned>(P2) >> 10);
+      return static_cast<unsigned>((reinterpret_cast<uintptr_t>(P1) >> 4) ^
+                                   (reinterpret_cast<uintptr_t>(P1) >> 9) ^
+                                   (reinterpret_cast<uintptr_t>(P2) >> 5) ^
+                                   (reinterpret_cast<uintptr_t>(P2) >> 10));
     }
     
     static bool isEqual(const clang::CFG::Edge& LHS,