https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117267
--- Comment #9 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #8) > You can always use statement expressions with macros for what you want to be > done. That is this works: #define setjmp(env1) ({ \ struct __jmp_buf *__env = (env1); \ int rc = __builtin_setjmp(__env[0].buf); \ (rc ? __env[0].rc : 0); \ })