Related: runtimeverification/mir-semantics#488
Sometimes functions are called via function pointers instead of as constants in MIR. Therefore, the functions array must be populated with these function items that are (potentially) called via pointers (currently only constants from func in TerminatorKind::Call are added to the array).
Rather than trying to go backwards from the Call terminator, this should be done by inspecting arguments of function calls to determine whether they are function pointers, and adding those (they may potentially be called later after being passed on to other callees in a chain of calls).