public void BlockTerminates() { var m = new ProcedureBuilder(); m.Call(exit, 4); var b = m.CurrentBlock; m.Return(); var a = new TerminationAnalysis(flow); flow[b] = CreateBlockFlow(b, m.Frame); a.Analyze(b); Assert.IsTrue(flow[b].TerminatesProcess); }
public void SsaCallIndirect() { var m = new ProcedureBuilder("SsaCallIndirect"); var r1 = m.Reg32("r1"); var r2 = m.Reg32("r2"); m.Assign(r1, m.LoadDw(r2)); m.Call(r1, 4); m.Return(); RunUnitTest(m, "Analysis/SsaCallIndirect.txt"); }