From 0f9b970b35b731c8b4c8207b3376d3718e176c83 Mon Sep 17 00:00:00 2001 From: Zygmunt Krynicki Date: Mon, 5 Oct 2020 07:40:19 +0200 Subject: [PATCH] Use _POSIX_C_SOURCE as condition to use sigsetjump Previous condition was more of a guess, this should be more accurate. Signed-off-by: Zygmunt Krynicki --- zt.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/zt.c b/zt.c index 80eb185..9085c00 100644 --- a/zt.c +++ b/zt.c @@ -248,10 +248,10 @@ typedef enum zt_outcome { } zt_outcome; typedef struct zt_test { -#if defined(_WIN32) || defined(__WATCOMC__) - jmp_buf jump_buffer; -#else +#if defined(_POSIX_C_SOURCE) sigjmp_buf jump_buffer; +#else + jmp_buf jump_buffer; #endif const char* name; FILE* stream; @@ -409,10 +409,10 @@ static void zt_runner_visitor__visit_case(void* id, zt_test_case_func func, memset(&test, 0, sizeof test); test.stream = runner->stream_err; test.outcome = ZT_PENDING; -#if defined(_WIN32) || defined(__WATCOMC__) - jump_result = setjmp(test.jump_buffer); -#else +#if defined(_POSIX_C_SOURCE) jump_result = sigsetjmp(test.jump_buffer, 1); +#else + jump_result = setjmp(test.jump_buffer); #endif if (jump_result == 0) { if (runner->verbose && runner->stream_out) { @@ -536,10 +536,10 @@ void zt_assert(zt_test* test, zt_claim claim) { if (!zt_verify_claim(test, &claim)) { test->outcome = ZT_FAILED; -#if defined(_WIN32) || defined(__WATCOMC__) - longjmp(test->jump_buffer, 1); -#else +#if defined(_POSIX_C_SOURCE) siglongjmp(test->jump_buffer, 1); +#else + longjmp(test->jump_buffer, 1); #endif /* TODO: in C++ mode throw an exception. */ }