]> git.eshelyaron.com Git - emacs.git/commit
Handle LISP_WORDS_ARE_POINTERS and CHECK_LISP_OBJECT_TYPE.
authorNicolás Bértolo <nicolasbertolo@gmail.com>
Fri, 8 May 2020 17:30:14 +0000 (14:30 -0300)
committerAndrea Corallo <akrl@sdf.org>
Wed, 20 May 2020 19:46:39 +0000 (20:46 +0100)
commit7fa83f9ac96bd201a15f7b0ae4a2cd20a70fd7ef
tree19eb5fbb75b4a8f706000d4fc0ffbbc834d16f89
parent5ff2cbdb04fe190c12b43a6c0f95a311da767872
Handle LISP_WORDS_ARE_POINTERS and CHECK_LISP_OBJECT_TYPE.

* src/comp.c: Introduce the Lisp_X, Lisp_Word, and Lisp_Word_tag
types. These types are used instead of long or long long. Use
emacs_int_type and emacs_uint_types where appropriate.
(emit_coerce): Add special logic that handles the case when
Lisp_Object is a struct. This is necessary for handling the
--enable-check-lisp-object-type configure option.

* src/lisp.h: Since libgccjit does not support opaque unions, change
Lisp_X to be struct. This is done to ensure that the same types are
used in the same binary. It is probably unnecessary since only a
pointer to it is used.
src/comp.c
src/lisp.h