Subject: 28.0.60; Null dereference warning with nox build in make_lispy_position

From: "Basil L. Contovounesios" <[email-masked]>
Date: Thu, 07 Oct 2021 12:35:24 +0100

Severity: minor

I'm currently seeing the following warning with GCC 10.3.0 and
--without-x:

In file included from keyboard.c:29:
keyboard.c: In function ‘make_lispy_position’:
frame.h:949:35: warning: null pointer dereference [-Wnull-dereference]
  949 | #define FRAME_TAB_BAR_LINES(f) (f)->tab_bar_lines
      |                                ~~~^~~~~~~~~~~~~~~
keyboard.c:5134:10: note: in expansion of macro ‘FRAME_TAB_BAR_LINES’
 5134 |       && FRAME_TAB_BAR_LINES (f) > 0
      |          ^~~~~~~~~~~~~~~~~~~

AFAICT the preceding condition '!FRAME_WINDOW_P (f)' will always be true
in a nox build, but it's not clear to me what the logic of
make_lispy_position should do in such a case.

Thanks,

-- 
Basil

In GNU Emacs 28.0.60 (build 1, x86_64-pc-linux-gnu)
 of 2021-10-07 built on tia
Repository revision: b7a10b44acf94458ed5f590be76749cec3e1b8dc
Repository branch: emacs-28
System Description: Debian GNU/Linux bookworm/sid

Configured using:
 'configure 'CC=ccache gcc' 'CFLAGS=-O2 -march=native' --config-cache
 --prefix=/home/blc/.local --program-suffix=-28-nox
 --enable-checking=structs --with-file-notification=yes
 --with-x-toolkit=no --without-x'

Configured features:
ACL DBUS GMP GNUTLS GPM JSON LCMS2 LIBSELINUX LIBSYSTEMD LIBXML2 MODULES
NOTIFY INOTIFY PDUMPER SECCOMP SOUND THREADS XIM ZLIB

Important settings:
  value of $LANG: en_IE.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

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

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util rmail
tool-bar rmail-loaddefs auth-source cl-seq eieio eieio-core cl-macs
eieio-loaddefs password-cache json map text-property-search time-date
subr-x seq mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader cl-loaddefs cl-lib sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils term/xterm xterm byte-opt gv
bytecomp byte-compile cconv regexp-opt iso-transl tooltip eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode
tabulated-list replace newcomment text-mode lisp-mode prog-mode register
page tab-bar menu-bar rfn-eshadow isearch easymenu timer select mouse
jit-lock font-lock syntax 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
emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help
simple abbrev obarray cl-preloaded nadvice button loaddefs faces
cus-face macroexp files window text-properties overlay sha1 md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote threads dbusbind inotify lcms2 multi-tty make-network-process
emacs)

Memory information:
((conses 16 55431 6608)
 (symbols 48 6643 1)
 (strings 32 18253 1556)
 (string-bytes 1 603597)
 (vectors 16 10645)
 (vector-slots 8 126102 7553)
 (floats 8 24 35)
 (intervals 56 193 0)
 (buffers 992 10))