Hi Stefan, thank you very much for that explanation. It actually says there: ________________________________ Von: Stefan Ring <stefanrin@xxxxxxxxx> Gesendet: Donnerstag, 22. August 2024 20:10 An: Christoph Rüthing <christoph@xxxxxxxxxxxxx> Cc: gcc-help@xxxxxxxxxxx <gcc-help@xxxxxxxxxxx> Betreff: Re: __cxa_rethrow instead of __cxa_end_catch when omitting curly braces On Thu, Aug 22, 2024 at 7:19 PM Christoph Rüthing <christoph@xxxxxxxxxxxxx> wrote: > > ... it still compiles without any warning, but now the generated assembly contains an unconditional __cxa_rethrow. So how does omitting the curly braces change the interpretation of this code? I guess this is a case of the function try syntax. I do not know if it applies to destructors as well, but this seems to be the case. I only knew about it in the context of constructors: https://www.learncpp.com/cpp-tutorial/function-try-blocks/