From ca6ef5184434ce75a2da6e3106bdb27d16224c84 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 24 Jan 2024 10:21:44 -0500 Subject: [PATCH] Fix build when CHECK_LISP_OBJECT_TYPE is set * src/lisp.h (make_lisp_symbol_internal): Fix last commit. (cherry picked from commit c9705037e98a398d0e6e145f16e0ce8cdd4a8973) --- src/lisp.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lisp.h b/src/lisp.h index eb0ee51d9f9..f822417ffb1 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -1173,7 +1173,12 @@ make_lisp_symbol_internal (struct Lisp_Symbol *sym) Do not use eassert here, so that builtin symbols like Qnil compile to constants; this is needed for some circa-2024 GCCs even with -O2. */ char *symoffset = (char *) ((char *) sym - (char *) lispsym); - return TAG_PTR (Lisp_Symbol, symoffset); + /* FIXME: We need this silly `a = ... return` η-redex because otherwise GCC + complains about: + lisp.h:615:28: error: expected expression before ‘{’ token + 615 | # define LISP_INITIALLY(w) {w} */ + Lisp_Object a = TAG_PTR (Lisp_Symbol, symoffset); + return a; } INLINE Lisp_Object -- 2.39.5