Reko.Analysis.SsaIdentifierTransformer.Transform C# (CSharp) Method

Transform() public method

public Transform ( Reko.Core.Statement stm, CallInstruction call ) : void
stm Reko.Core.Statement
call CallInstruction
return void
        public void Transform(Statement stm, CallInstruction call)
        {
            this.stm = stm;
            this.call = call;
            ssa.ReplaceDefinitions(stm, null);
            ssa.RemoveUses(stm);
            stm.Instruction = Transform(stm.Instruction);
        }

Usage Example

Esempio n. 1
0
        private void RewriteCall(Statement stm, CallInstruction call)
        {
            var e  = expander.Expand(call.Callee);
            var pt = e.Accept(asc) as Pointer;

            if (pt == null)
            {
                return;
            }
            var ft = pt.Pointee as FunctionType;

            if (ft == null)
            {
                return;
            }
            var returnId = ft.ReturnValue.DataType is VoidType ?
                           null : ft.ReturnValue;
            var sigCallee = new ProcedureSignature(returnId, ft.Parameters);
            var ab        = new ApplicationBuilder(
                program.Architecture, proc.Frame, call.CallSite,
                call.Callee, sigCallee, true);

            stm.Instruction = ab.CreateInstruction();
            ssaIdTransformer.Transform(stm, call);
        }
All Usage Examples Of Reko.Analysis.SsaIdentifierTransformer::Transform