Subject: Re: bug#30855: 25.3; temacs fails with bus error during garbage collection

From: Eli Zaretskii <[email-masked]>
Date: Tue, 20 Mar 2018 18:40:51 +0200

> From: Andreas Schwab <[email-masked]>
> Cc: Ulrich Mueller <[email-masked]>,  Paul Eggert <[email-masked]>,  [email-masked],  [email-masked]
> Date: Tue, 20 Mar 2018 16:26:19 +0100
> 
> > --- a/src/alloc.c
> > +++ b/src/alloc.c
> > @@ -4983,7 +4983,8 @@ mark_memory (void *start, void *end)
> >    for (pp = start; (void *) pp < end; pp += GC_POINTER_ALIGNMENT)
> >      {
> >        mark_maybe_pointer (*(void **) pp);
> > -      mark_maybe_object (*(Lisp_Object *) pp);
> > +      if ((intptr_t) pp % GCALIGNMENT == 0)
> 
> That should be alignof(Lisp_Object).  A Lisp_Object only needs
> Lisp_Object alignment.  GCALIGNMENT is about the _value_ of a
> Lisp_Object (ie. the address of the Lisp object that this Lisp_Object
> points to).

Right, thanks.

Ulrich, please see if that fixes this problem.