From a31a164ea0b75c6523346fb9cc05233e036596d3 Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Sat, 22 Jun 2019 17:12:35 +0200 Subject: [PATCH] imrpve macros --- src/comp.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/comp.c b/src/comp.c index 201ffa65597..c724f46a9b3 100644 --- a/src/comp.c +++ b/src/comp.c @@ -125,15 +125,17 @@ along with GNU Emacs. If not, see . */ /* Pop from the meta-stack, emit the call and push the result */ #define EMIT_CALL_N(name, nargs) \ - POP##nargs; \ - res = emit_call (name, comp.lisp_obj_type, nargs, args); \ - PUSH_RVAL (res); + do { \ + POP##nargs; \ + res = emit_call (name, comp.lisp_obj_type, nargs, args); \ + PUSH_RVAL (res); \ + } while (0) /* Generate appropriate case and emit call to function. */ #define CASE_CALL_NARGS(name, nargs) \ case B##name: \ - EMIT_CALL_N (STR(F##name), nargs) \ + EMIT_CALL_N (STR(F##name), nargs); \ break /* Emit calls to functions with prototype (ptrdiff_t nargs, Lisp_Object *args) -- 2.39.5