[gnu.emacs.bug] EMACS 18.55 bug in alloc.c

Gary_Edmunds_Miller@cup.portal.com (11/15/89)

I was just using Emacs version 18.55 to test a recent port of 
GCC to a Charles River Data Systems/Universe 32.  In the
process a bug in alloc.c in Emacs 18.55 was found that causes a core
dump. As an approximation of the code:
-----
char staticvec1[NSTATICS * sizeof(Lisp_Object *)] = {0};

#define staticvec((Lisp_Object **)) staticvec1)

void
staticpro(varaddress)
        Lisp_Object *varaddress;
{
	staticvec[staticidx++] = varaddress;
-----
Now it just so happens that staticvec1 was aligned on an ODD byte,
but GCC used a MOVE.L instruction on a 68000.  A word write to an
odd address causes a TRAP on a 68000.  The fix is to define
staticvec1 as an int and to descreas the size of staticvec1 by
sizeof(int).
..
RGDS
GARY