r157525 didn't work, just disable iterator checking.
authorBenjamin Kramer <benny.kra@googlemail.com>
Sun, 27 May 2012 10:24:52 +0000 (10:24 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Sun, 27 May 2012 10:24:52 +0000 (10:24 +0000)
This is obviosly right but I don't see how to do this with proper vector
iterators without building a horrible mess of workarounds.

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

lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

index 1330a2621392d95fe31b637c0b599e3ce4e529c7..6837d822e6152e9ee0e0f6fdc618a0cc3abe520a 100644 (file)
@@ -1991,7 +1991,7 @@ bool SelectionDAGBuilder::handleSmallSwitchRange(CaseRec& CR,
     // 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.
     // 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; I >= E; --I) {
+    for (Case *I = &*CR.Range.second-2, *E = &*CR.Range.first-1; I != E; --I){
       if (I->BB == NextBlock) {
         std::swap(*I, BackCase);
         break;