Fix a problem with negative indexes

llvm-svn: 5681
diff --git a/llvm/lib/Analysis/BasicAliasAnalysis.cpp b/llvm/lib/Analysis/BasicAliasAnalysis.cpp
index 2242d4f..d9456f5 100644
--- a/llvm/lib/Analysis/BasicAliasAnalysis.cpp
+++ b/llvm/lib/Analysis/BasicAliasAnalysis.cpp
@@ -301,11 +301,11 @@
     }
   }
   
-  unsigned Offset1 = getTargetData().getIndexedOffset(GEPPointerTy, Indices1);
-  unsigned Offset2 = getTargetData().getIndexedOffset(GEPPointerTy, Indices2);
+  int Offset1 = getTargetData().getIndexedOffset(GEPPointerTy, Indices1);
+  int Offset2 = getTargetData().getIndexedOffset(GEPPointerTy, Indices2);
   assert(Offset1 < Offset2 &&"There is at least one different constant here!");
 
-  if (Offset2-Offset1 >= SizeMax) {
+  if ((unsigned)(Offset2-Offset1) >= SizeMax) {
     //std::cerr << "Determined that these two GEP's don't alias [" 
     //          << SizeMax << " bytes]: \n" << *GEP1 << *GEP2;
     return NoAlias;