diff options
-rw-r--r-- | tests/checkasm/checkasm.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/tests/checkasm/checkasm.h b/tests/checkasm/checkasm.h index 0871130..0d6307d 100644 --- a/tests/checkasm/checkasm.h +++ b/tests/checkasm/checkasm.h @@ -282,9 +282,9 @@ void checkasm_stack_clobber(uint64_t clobber, ...); #ifdef readtime #define bench_new(...)\ do {\ + func_type *tfunc = func_new;\ + checkasm_set_signal_handler_state(1);\ if (checkasm_bench_func()) {\ - checkasm_set_signal_handler_state(1);\ - func_type *tfunc = func_new;\ uint64_t tsum = 0;\ int tcount = 0;\ for (int ti = 0; ti < BENCH_RUNS; ti++) {\ @@ -299,9 +299,11 @@ void checkasm_stack_clobber(uint64_t clobber, ...); tcount++;\ }\ }\ - checkasm_set_signal_handler_state(0);\ checkasm_update_bench(tcount, tsum);\ + } else {\ + tfunc(__VA_ARGS__);\ }\ + checkasm_set_signal_handler_state(0);\ } while (0) #else #define bench_new(...) do {} while (0) |