Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uunet!portal!cup.portal.com!Gary_Edmunds_Miller From: Gary_Edmunds_Miller@cup.portal.com Newsgroups: gnu.emacs.bug Subject: EMACS 18.55 bug in alloc.c Message-ID: <24057@cup.portal.com> Date: 14 Nov 89 18:35:28 GMT Organization: The Portal System (TM) Lines: 23 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