public void Cab_Sequence() { var m = new SsaProcedureBuilder(nameof(Cab_Sequence)); var r2_1 = m.Reg("r2_1", reg2); var r3_2 = m.Reg("r3_2", reg3); var r2_r3_4 = m.SeqId("r2_r3_4", PrimitiveType.Word64, reg2, reg3); m.Assign(r2_1, 0x0001234); m.Assign(r3_2, 0x5678ABCD); m.Assign(r2_r3_4, m.Seq(r2_1, r3_2)); var sigCallee = FunctionType.Action( new Identifier("r2_r3", PrimitiveType.Word64, new SequenceStorage(PrimitiveType.Word64, reg2, reg3))); var callee = new ProcedureConstant( PrimitiveType.Ptr32, new ExternalProcedure("callee", sigCallee)); var stmCall = m.Call(callee, 0, new Identifier[] { r2_r3_4 }, new Identifier[] { }); m.Return(); var cab = new CallApplicationBuilder( m.Ssa, stmCall, (CallInstruction)stmCall.Instruction, callee); var instr = cab.CreateInstruction(sigCallee, null); Assert.AreEqual("callee(r2_r3_4)", instr.ToString()); m.Ssa.Validate(s => Assert.Fail(s)); }