It looks like the for loop postprocessing code can drop the increment statement in one case:
StatementPtr incrementStatement = GetForIncrementStatement();
if ((prevStatement->GetType() != Stat_LocalVar) && !incrementStatement)
return StatementPtr();
GetForIncrementStatement actually removes the increment statement from the block, and then if it doesn't get used (because GetType() == Stat_LocalVar), I believe it just disappears.
It looks like the for loop postprocessing code can drop the increment statement in one case:
GetForIncrementStatementactually removes the increment statement from the block, and then if it doesn't get used (because GetType() == Stat_LocalVar), I believe it just disappears.