Skip to content

Instantly share code, notes, and snippets.

@einarwh
Last active December 27, 2015 08:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save einarwh/7295861 to your computer and use it in GitHub Desktop.
Save einarwh/7295861 to your computer and use it in GitHub Desktop.
private IList<Instruction> FindTailCalls(MethodDefinition method)
{
var calls = new List<Instruction>();
foreach (var insn in method.Body.Instructions)
{
if (insn.OpCode == OpCodes.Call)
{
var methodRef = (MethodReference)insn.Operand;
if (methodRef == method)
{
if (insn.Next != null && insn.Next.OpCode == OpCodes.Ret)
{
calls.Add(insn);
}
}
}
}
return calls;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment