From: Andrea Corallo Date: Sat, 22 Jun 2019 15:12:35 +0000 (+0200) Subject: imrpve macros X-Git-Tag: emacs-28.0.90~2727^2~1461 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=a31a164ea0b75c6523346fb9cc05233e036596d3;p=emacs.git imrpve macros --- 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)