public bool IsLinearReturning(Block block)
{
for (; ; )
{
if (block.Statements.Count == 0)
return false;
if (block.Statements.Last.Instruction is ReturnInstruction)
return true;
if (!(block.Statements.Last.Instruction is Assignment))
return false;
if (block.Succ.Count == 0)
return false;
block = block.Succ[0];
}
}