1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-09 05:01:02 -08:00

Port alignment verification to x86 --with-wide-int

Problem reported by Eli Zaretskii in:
https://lists.gnu.org/r/emacs-devel/2018-06/msg00238.html
* src/lisp.h (struct Lisp_Symbol, union vectorlike_header)
(struct Lisp_Cons, struct Lisp_String):
Do not check alignment if !USE_LSB_TAG, as alignment is
needed only if we are tagging the low-order bits.
This commit is contained in:
Paul Eggert 2018-06-08 08:08:03 -07:00
parent f09e9d292f
commit db353b8649

View file

@ -785,7 +785,7 @@ struct Lisp_Symbol
GCALIGNED_UNION
} u;
};
verify (alignof (struct Lisp_Symbol) % GCALIGNMENT == 0);
verify (!USE_LSB_TAG || alignof (struct Lisp_Symbol) % GCALIGNMENT == 0);
/* Declare a Lisp-callable function. The MAXARGS parameter has the same
meaning as in the DEFUN macro, and is used to construct a prototype. */
@ -898,7 +898,7 @@ union vectorlike_header
ptrdiff_t size;
GCALIGNED_UNION
};
verify (alignof (union vectorlike_header) % GCALIGNMENT == 0);
verify (!USE_LSB_TAG || alignof (union vectorlike_header) % GCALIGNMENT == 0);
INLINE bool
(SYMBOLP) (Lisp_Object x)
@ -1259,7 +1259,7 @@ struct Lisp_Cons
GCALIGNED_UNION
} u;
};
verify (alignof (struct Lisp_Cons) % GCALIGNMENT == 0);
verify (!USE_LSB_TAG || alignof (struct Lisp_Cons) % GCALIGNMENT == 0);
INLINE bool
(NILP) (Lisp_Object x)
@ -1381,7 +1381,7 @@ struct Lisp_String
GCALIGNED_UNION
} u;
};
verify (alignof (struct Lisp_String) % GCALIGNMENT == 0);
verify (!USE_LSB_TAG || alignof (struct Lisp_String) % GCALIGNMENT == 0);
INLINE bool
STRINGP (Lisp_Object x)