Fix compiler crash with empty switch statement
This commit is contained in:
parent
f0f174e439
commit
381aaa1509
|
@ -5302,16 +5302,19 @@ InterCodeGenerator::ExValue InterCodeGenerator::TranslateExpression(Declaration*
|
||||||
sexp = sexp->mRight;
|
sexp = sexp->mRight;
|
||||||
}
|
}
|
||||||
|
|
||||||
int i = 1, j = 1;
|
if (switchNodes.Size() > 0)
|
||||||
while (i < switchNodes.Size())
|
|
||||||
{
|
{
|
||||||
if (switchNodes[i].mBlock == switchNodes[j - 1].mBlock && switchNodes[i].mLower == switchNodes[j - 1].mUpper + 1)
|
int i = 1, j = 1;
|
||||||
switchNodes[j - 1].mUpper = switchNodes[i].mUpper;
|
while (i < switchNodes.Size())
|
||||||
else
|
{
|
||||||
switchNodes[j++] = switchNodes[i];
|
if (switchNodes[i].mBlock == switchNodes[j - 1].mBlock && switchNodes[i].mLower == switchNodes[j - 1].mUpper + 1)
|
||||||
i++;
|
switchNodes[j - 1].mUpper = switchNodes[i].mUpper;
|
||||||
|
else
|
||||||
|
switchNodes[j++] = switchNodes[i];
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
switchNodes.SetSize(j);
|
||||||
}
|
}
|
||||||
switchNodes.SetSize(j);
|
|
||||||
|
|
||||||
BuildSwitchTree(proc, exp, sblock, inlineMapper, vl, switchNodes, 0, switchNodes.Size(), vleft, vright, dblock ? dblock : eblock);
|
BuildSwitchTree(proc, exp, sblock, inlineMapper, vl, switchNodes, 0, switchNodes.Size(), vleft, vright, dblock ? dblock : eblock);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue