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;