Hello, First of all I’m not sure where I should ask this question so I’m using this list. Please kindly direct me to the right place if asking here is not appropriate. I have a question regarding GCC's behavior with respect to tail call optimization (TCO). I understand that the C++ standard does not mandate TCO, but I'm curious about the specific conditions under which GCC applies it in practice. I have a scenario where I implement the same behaviour but one using an RAII style https://godbolt.org/z/1YTP591Eq I’m surprised that there is an assembly generation difference which seems related to TCO. I.E. there is a `call` instruction generated iso of a `jmp` I would like to get some help understanding why there is such a difference. Kind regards,