]> git.eshelyaron.com Git - emacs.git/commitdiff
Properly align global lispsym
authorAndreas Schwab <schwab@linux-m68k.org>
Mon, 24 Jul 2017 23:12:50 +0000 (01:12 +0200)
committerAndreas Schwab <schwab@linux-m68k.org>
Mon, 24 Jul 2017 23:20:44 +0000 (01:20 +0200)
* lib-src/make-docfile.c (close_emacs_globals): Wrap struct
Lisp_Symbols inside struct.
* src/alloc.c (sweep_symbols): Update use of lispsym.
* src/lisp.h (builtin_lisp_symbol): Likewise.

lib-src/make-docfile.c
src/alloc.c
src/lisp.h

index 6b2cc1104030759be24593f0bdecb94c1924a8a6..ecd6447ab7871f99b9e8a540878080a2a37afccd 100644 (file)
@@ -667,7 +667,9 @@ close_emacs_globals (ptrdiff_t num_symbols)
           "#ifndef DEFINE_SYMBOLS\n"
           "extern\n"
           "#endif\n"
-          "struct Lisp_Symbol alignas (GCALIGNMENT) lispsym[%td];\n"),
+          "struct {\n"
+          "  struct Lisp_Symbol alignas (GCALIGNMENT) s;\n"
+          "} lispsym[%td];\n"),
          num_symbols);
 }
 
index 2d785d5b9a4dc352b3942a4909419e0c2bc93958..2cee64625641c3ba6f67b464f36bcc7af935e568 100644 (file)
@@ -6943,7 +6943,7 @@ sweep_symbols (void)
   symbol_free_list = NULL;
 
   for (int i = 0; i < ARRAYELTS (lispsym); i++)
-    lispsym[i].gcmarkbit = 0;
+    lispsym[i].s.gcmarkbit = 0;
 
   for (sblk = symbol_block; sblk; sblk = *sprev)
     {
index 9464bf8559fa840e34eb7ff567cb46f079e94228..cffaf954b3baa72efd0e937bf9de8aa2a806958c 100644 (file)
@@ -838,13 +838,13 @@ make_lisp_symbol (struct Lisp_Symbol *sym)
 INLINE Lisp_Object
 builtin_lisp_symbol (int index)
 {
-  return make_lisp_symbol (lispsym + index);
+  return make_lisp_symbol (&lispsym[index].s);
 }
 
 INLINE void
 (CHECK_SYMBOL) (Lisp_Object x)
 {
- lisp_h_CHECK_SYMBOL (x);
 lisp_h_CHECK_SYMBOL (x);
 }
 
 /* In the size word of a vector, this bit means the vector has been marked.  */