Subject: bug#39577: 27.0.60; Assertion failed during compilation

From: Henrik Grimler <[email-masked]>
Date: Wed, 12 Feb 2020 08:39:58 +0100

Hi,

I am trying to debug a segmentation fault happening on android 32bit
arm. To do that I tried recompiling my emacs with

```
../configure --enable-checking=yes,glyphs \
--enable-check-lisp-object-type \
--without-makeinfo \
--without-selinux \
--prefix /data/data/com.termux/files/usr/local \
CFLAGS="-O0 -g3 -gdwarf-4"
```

but building the emacs-27 branch (commit 06c302d) this fails with:

```
[...]
Loading /data/data/com.termux/files/home/projects/emacs/lisp/emacs-lisp/syntax.el (source)...
Loading /data/data/com.termux/files/home/projects/emacs/lisp/font-lock.el (source)...
Loading /data/data/com.termux/files/home/projects/emacs/lisp/jit-lock.el (source)...

../../src/fns.c:2856: Emacs fatal error: assertion failed: !FIXNUM_OVERFLOW_P (lisp_h_make_fixnum_n)
Fatal error 6: n
make[1]: *** [Makefile:817: bootstrap-emacs.pdmp] Aborted
make[1]: Leaving directory '/data/data/com.termux/files/home/projects/emacs/build/src'
make: *** [Makefile:424: src] Error 2
```

This (as well as the segfault) happens both if compiling with clang 9.0.1 and gcc 9.2.0.
I get a warning earlier multiple times that might be related:

```
[...]
  CC       dispnew.o
In file included from ../../src/dispnew.c:29:
In file included from ../../src/termchar.h:23:
../../src/dispextern.h:1917:36: warning: signed shift result (0x3FFFFC00000) requires 43 bits to represent, but 'EMACS_INT' (aka 'int') only has 32 bits [-Wshift-overflow]
               ? ((EMACS_INT) MAX_FACE_ID << CHARACTERBITS) | MAX_CHAR
                  ~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~
1 warning generated.
[...]
```

I have uploaded the full config.log and make output here:
https://grimler.se/emacs/config.log
https://grimler.se/emacs/make.log

If I remove --enable-checking=yes,glyphs it builds (I am sending this
bug report from that build) but gets segmentation faults every now and
then. Easiest way to trigger it is to scroll up and down in some file,
but it still happens randomly, maybe after 200 lines, maybe after 10
000.

Does anyone have any suggestions for how I can proceed debugging this?

Best regards,
Henrik Grimler

In GNU Emacs 27.0.60 (build 1, armv7l-unknown-linux-gnueabi)
 of 2020-02-10 built on localhost
Repository revision: 06c302d425fc2093130479b8aed7da4507d43331
Repository branch: emacs-27
Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.

Configured using:
 'configure --enable-check-lisp-object-type --without-makeinfo
 --without-selinux --prefix /data/data/com.termux/files/usr/local/
 'CFLAGS=-O0 -g3 -gdwarf-4''

Configured features:
NOTIFY INOTIFY ACL GNUTLS LIBXML2 ZLIB MODULES THREADS PDUMPER LCMS2 GMP

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Fundamental

Minor modes in effect:
  show-paren-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow regexp-opt sort mail-extr emacsbug message rmc puny dired
dired-loaddefs format-spec rfc822 mml mml-sec epa derived epg epg-config
gnus-util rmail rmail-loaddefs text-property-search time-date mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils image
term/xterm xterm edmacro kmacro tsdh-dark-theme paren finder-inf info
tool-bar package easymenu browse-url url-handlers url-parse auth-source
cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json
subr-x map url-vars seq byte-opt gv bytecomp byte-compile cconv
cl-loaddefs cl-lib tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type tabulated-list replace newcomment text-mode elisp-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
timer select mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite charscript charprop case-table epa-hook
jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote threads inotify lcms2 multi-tty make-network-process emacs)

Memory information:
((conses 8 77236 5768)
 (symbols 24 9059 1)
 (strings 16 27039 2319)
 (string-bytes 1 881148)
 (vectors 8 12044)
 (vector-slots 4 135461 6406)
 (floats 8 46 544)
 (intervals 28 170 0)
 (buffers 576 12))