diff options
Diffstat (limited to 'executor/common_fuchsia.h')
| -rw-r--r-- | executor/common_fuchsia.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/executor/common_fuchsia.h b/executor/common_fuchsia.h index 2d76891da..6576e83f0 100644 --- a/executor/common_fuchsia.h +++ b/executor/common_fuchsia.h @@ -126,13 +126,16 @@ static void install_segv_handler(void) } #define NONFAILING(...) \ - { \ + ({ \ + int ok = 1; \ __atomic_fetch_add(&skip_segv, 1, __ATOMIC_SEQ_CST); \ if (sigsetjmp(segv_env, 0) == 0) { \ __VA_ARGS__; \ - } \ + } else \ + ok = 0; \ __atomic_fetch_sub(&skip_segv, 1, __ATOMIC_SEQ_CST); \ - } + ok; \ + }) #endif #if SYZ_EXECUTOR || SYZ_THREADED |
