Remove the double Call() implementation to reduce code duplication.
Then fix Function::getSource() so we can diagnose instance pointers being null.
As discussed in https://reviews.llvm.org/D134699 - this fixes the test case added there.
The output in this case is not 100% the same as the current constant interpreter however.
While I think the comment here is correct, the decrement itself certainly isn't.