Be a bit more aggressive in bailing out of this routine. Spotted by
authorChandler Carruth <chandlerc@gmail.com>
Fri, 14 Sep 2012 10:30:42 +0000 (10:30 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Fri, 14 Sep 2012 10:30:42 +0000 (10:30 +0000)
inspection by Duncan during review. My suspicion is that we would still
have returned 0 anyways in this case, but doing it sooner is better.

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

lib/Transforms/Scalar/SROA.cpp

index 97c28d442ad3899286bdffe954d64cffd6f88812..27808ea8c8b88b538f8a3cdabf924fc67d0bebf2 100644 (file)
@@ -1336,7 +1336,7 @@ static Value *getNaturalGEPRecursively(IRBuilder<> &IRB, const TargetData &TD,
 
   const StructLayout *SL = TD.getStructLayout(STy);
   uint64_t StructOffset = Offset.getZExtValue();
-  if (StructOffset > SL->getSizeInBytes())
+  if (StructOffset >= SL->getSizeInBytes())
     return 0;
   unsigned Index = SL->getElementContainingOffset(StructOffset);
   Offset -= APInt(Offset.getBitWidth(), SL->getElementOffset(Index));