GaloisInc / pate

Patches Assured up to Trace Equivalence

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Handle tail calls

danmatichuk opened this issue · comments

Currently an exception is thrown in the case where a function call does not have a statically-known return point. This happens for tail calls, when a function is jumped to directly without setting up a new stack frame.

Without a return point, we need to handle this by instead considering the return of the tail call to be the return point of the calling function. This is fairly straightforward to represent in the PairGraph, as it just involves adding some additional return edges.

Some additional consideration may be needed for how to handle transforming the stack frame variable, however.