SDAGBuilder: Avoid iterator invalidation harder.

vector.begin()-1 is invalid too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157525 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Benjamin Kramer 2012-05-27 09:44:52 +00:00
parent e82d598ef2
commit dc54f8ebe2

View File

@ -1991,7 +1991,7 @@ bool SelectionDAGBuilder::handleSmallSwitchRange(CaseRec& CR,
// The last case block won't fall through into 'NextBlock' if we emit the // The last case block won't fall through into 'NextBlock' if we emit the
// branches in this order. See if rearranging a case value would help. // branches in this order. See if rearranging a case value would help.
// We start at the bottom as it's the case with the least weight. // We start at the bottom as it's the case with the least weight.
for (CaseItr I = CR.Range.second-2, E = CR.Range.first-1; I != E; --I) { for (CaseItr I = CR.Range.second-2, E = CR.Range.first; I >= E; --I) {
if (I->BB == NextBlock) { if (I->BB == NextBlock) {
std::swap(*I, BackCase); std::swap(*I, BackCase);
break; break;