SCEV: missing null check fix for r132360, dragonegg crash.

llvm-svn: 132416
This commit is contained in:
Andrew Trick 2011-06-01 19:14:56 +00:00
parent e9cc8e90b7
commit 8ef3ad049d
1 changed files with 3 additions and 3 deletions

View File

@ -1081,9 +1081,8 @@ static const SCEV *getPreStartForSignExtend(const SCEVAddRecExpr *AR,
const SCEVAddRecExpr *PreAR = dyn_cast<SCEVAddRecExpr>(
SE->getAddRecExpr(PreStart, Step, L, SCEV::FlagAnyWrap));
if (PreAR && PreAR->getNoWrapFlags(SCEV::FlagNSW)) {
if (PreAR && PreAR->getNoWrapFlags(SCEV::FlagNSW))
return PreStart;
}
// 2. Direct overflow check on the step operation's expression.
unsigned BitWidth = SE->getTypeSizeInBits(AR->getType());
@ -1104,7 +1103,8 @@ static const SCEV *getPreStartForSignExtend(const SCEVAddRecExpr *AR,
ICmpInst::Predicate Pred;
const SCEV *OverflowLimit = getOverflowLimitForStep(Step, &Pred, SE);
if (SE->isLoopEntryGuardedByCond(L, Pred, PreStart, OverflowLimit)) {
if (OverflowLimit &&
SE->isLoopEntryGuardedByCond(L, Pred, PreStart, OverflowLimit)) {
return PreStart;
}
return 0;