]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix typeof portability issue with bitfields
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 15 Aug 2019 17:51:03 +0000 (10:51 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 15 Aug 2019 17:53:25 +0000 (10:53 -0700)
Problem reported by Glenn Morris in:
https://lists.gnu.org/r/emacs-devel/2019-08/msg00300.html
* src/lisp.h (lisp_h_make_fixnum): Use typeof (+(n)) instead
of typeof (n), so that it works with compilers that do
not allow typeof to be applied to a bitfield.

src/lisp.h

index 1c98925fa8d4e733f8453ce3ffe2a5037ab28bb0..56ad99b8e395a1a592ea0be8c2965f5ec75d4b4f 100644 (file)
@@ -401,7 +401,7 @@ typedef EMACS_INT Lisp_Word;
     XIL ((EMACS_INT) (((EMACS_UINT) (n) << INTTYPEBITS) + Lisp_Int0))
 # if defined HAVE_STATEMENT_EXPRESSIONS && defined HAVE_TYPEOF
 #  define lisp_h_make_fixnum(n) \
-     ({ typeof (n) lisp_h_make_fixnum_n = n; \
+     ({ typeof (+(n)) lisp_h_make_fixnum_n = n; \
        eassert (!FIXNUM_OVERFLOW_P (lisp_h_make_fixnum_n)); \
        lisp_h_make_fixnum_wrap (lisp_h_make_fixnum_n); })
 # else