GCC wiki gcc.gnu.org/wiki/TailCalls Explains when GCC transforms `return func(args)` into a `jmp` instead of `call` + `ret`, eliminating the stack frame growth for recursive calls at the cost of losing the frame in backtraces. Relevant to the recursive factorial example: `factorial(n-1)` is not a ta