public void SefAreConstrained() { Procedure proc = new ConstrainedMock().Procedure; Statement def = proc.EntryBlock.Succ[0].Statements[0]; Statement use = proc.EntryBlock.Succ[0].Statements[2]; Assert.AreEqual("id = bar(0x00000003)", def.Instruction.ToString()); Assert.AreEqual("Mem0[0x10000304:word32] = id", use.Instruction.ToString()); Assert.AreEqual(SideEffectFlags.Application, sef.FindSideEffect(def.Instruction)); Assert.AreEqual(SideEffectFlags.Load | SideEffectFlags.Store, sef.FindSideEffect(proc.EntryBlock.Succ[0].Statements[1].Instruction)); Assert.AreEqual(SideEffectFlags.Load|SideEffectFlags.Store, sef.FindSideEffect(use.Instruction)); Assert.IsTrue(sef.AreConstrained(def, use)); }
public void SefAreConstrained() { Procedure proc = new ConstrainedMock().Procedure; Statement def = proc.EntryBlock.Succ[0].Statements[0]; Statement use = proc.EntryBlock.Succ[0].Statements[2]; Assert.AreEqual("id = bar(3<i32>)", def.Instruction.ToString()); Assert.AreEqual("Mem0[0x10000304<32>:word32] = id", use.Instruction.ToString()); Assert.AreEqual(SideEffectFlags.Application, sef.FindSideEffect(def.Instruction)); Assert.AreEqual(SideEffectFlags.Load | SideEffectFlags.Store, sef.FindSideEffect(proc.EntryBlock.Succ[0].Statements[1].Instruction)); Assert.AreEqual(SideEffectFlags.Load | SideEffectFlags.Store, sef.FindSideEffect(use.Instruction)); Assert.IsTrue(sef.AreConstrained(def, use)); }