unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Emacs release branch warnings with GCC 8
@ 2018-04-30 17:12 Paul Eggert
  2018-04-30 19:38 ` Eli Zaretskii
  0 siblings, 1 reply; 5+ messages in thread
From: Paul Eggert @ 2018-04-30 17:12 UTC (permalink / raw)
  To: Emacs development discussions

[-- Attachment #1: Type: text/plain, Size: 832 bytes --]

The emacs-26 branch has some warnings when compiled on Fedora 28, which 
is scheduled for release next week; see attached. This is because Fedora 
28 uses GCC 8.0.1, and when --enable-gcc-warnings is used (which is the 
default in a build from Git), GCC 8 issues some warnings that GCC 7 does 
not. I've patched the master to fix this problem in commits 
2b9ab8c8fba849da8bf2aa45e65b122bb937a6b3 and 
8c3215e7a47e3caaa005bf573765ed63e0739b89, and could backport these 
patches (or a subset) to emacs-26 if there's interest.

Only one of the warnings indicates a real bug, one in emacsclient that 
could cause undefined behavior. On the other hand, if we don't pacify 
GCC 8 now we're likely to get bug reports about the warnings for quite 
some time, and it might be less work for everybody involved if we squash 
the warnings now.

[-- Attachment #2: emacs-26.txt --]
[-- Type: text/plain, Size: 18743 bytes --]

1003-Penguin $ make
make -C lib all
make[1]: Entering directory '/home/eggert/src/gnu/emacs/emacs-26-sc/lib'
  GEN      alloca.h
  GEN      dirent.h
  GEN      fcntl.h
  GEN      inttypes.h
  GEN      limits.h
  GEN      signal.h
  GEN      stdio.h
  GEN      stdlib.h
  GEN      string.h
  GEN      sys/select.h
  GEN      sys/stat.h
  GEN      sys/time.h
  GEN      sys/types.h
  GEN      time.h
  GEN      unistd.h
  CC       fcntl.o
  CC       sig2str.o
  CC       time_rz.o
  CC       acl-errno-valid.o
  CC       acl-internal.o
  CC       get-permissions.o
  CC       set-permissions.o
  CC       allocator.o
  CC       binary-io.o
  CC       c-ctype.o
  CC       c-strcasecmp.o
  CC       c-strncasecmp.o
  CC       careadlinkat.o
  CC       close-stream.o
  CC       count-leading-zeros.o
  CC       count-one-bits.o
  CC       count-trailing-zeros.o
  CC       md5.o
  CC       sha1.o
  CC       sha256.o
  CC       sha512.o
  CC       dtoastr.o
  CC       dtotimespec.o
  CC       filemode.o
  CC       filevercmp.o
  CC       gettime.o
  CC       nstrftime.o
  CC       pipe2.o
  CC       qcopy-acl.o
  CC       stat-time.o
  CC       tempname.o
  CC       timespec.o
  CC       timespec-add.o
  CC       timespec-sub.o
  CC       u64.o
  CC       unistd.o
  CC       utimens.o
  CC       openat-die.o
  CC       save-cwd.o
  AR       libgnu.a
  CC       e-fcntl.o
  CC       e-sig2str.o
  CC       e-time_rz.o
  CC       e-acl-errno-valid.o
  CC       e-acl-internal.o
  CC       e-get-permissions.o
  CC       e-set-permissions.o
  CC       e-allocator.o
  CC       e-binary-io.o
  CC       e-c-ctype.o
  CC       e-c-strcasecmp.o
  CC       e-c-strncasecmp.o
  CC       e-careadlinkat.o
  CC       e-close-stream.o
  CC       e-count-leading-zeros.o
  CC       e-count-one-bits.o
  CC       e-count-trailing-zeros.o
  CC       e-md5.o
  CC       e-sha1.o
  CC       e-sha256.o
  CC       e-sha512.o
  CC       e-dtoastr.o
  CC       e-dtotimespec.o
  CC       e-filemode.o
  CC       e-filevercmp.o
  CC       e-gettime.o
  CC       e-nstrftime.o
  CC       e-pipe2.o
  CC       e-qcopy-acl.o
  CC       e-stat-time.o
  CC       e-tempname.o
  CC       e-timespec.o
  CC       e-timespec-add.o
  CC       e-timespec-sub.o
  CC       e-u64.o
  CC       e-unistd.o
  CC       e-utimens.o
  CC       e-openat-die.o
  CC       e-save-cwd.o
  AR       libegnu.a
make[1]: Leaving directory '/home/eggert/src/gnu/emacs/emacs-26-sc/lib'
make -C lib-src all
make[1]: Entering directory '/home/eggert/src/gnu/emacs/emacs-26-sc/lib-src'
  CC       regex.o
../src/regex.c: In function ‘analyze_first’:
../src/regex.c:4027:4: warning: this statement may fall through [-Wimplicit-fallthrough=]
    switch (*p)
    ^~~~~~
../src/regex.c:4043:2: note: here
  case on_failure_jump:
  ^~~~
  CCLD     etags
  CCLD     ctags
  CCLD     emacsclient
emacsclient.c: In function ‘fail’:
emacsclient.c:732:7: warning: potential null pointer dereference [-Wnull-dereference]
       execvp (*new_argv, new_argv);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
emacsclient.c:732:7: warning: potential null pointer dereference [-Wnull-dereference]
  CCLD     ebrowse
  CCLD     profile
  CCLD     hexl
  CC       pop.o
  CCLD     movemail
  CCLD     make-docfile
make[1]: Leaving directory '/home/eggert/src/gnu/emacs/emacs-26-sc/lib-src'
make -C src VCSWITNESS='$(srcdir)/../.git/logs/HEAD' all
make[1]: Entering directory '/home/eggert/src/gnu/emacs/emacs-26-sc/src'
  GEN      lisp.mk
  GEN      globals.h
  CC       dispnew.o
  CC       frame.o
  CC       scroll.o
  CC       xdisp.o
  CC       menu.o
In file included from menu.c:48:
menu.h:33:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes]
 extern void finish_menu_items (void) ATTRIBUTE_CONST;
 ^~~~~~
  CC       xmenu.o
In file included from xmenu.c:101:
menu.h:33:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes]
 extern void finish_menu_items (void) ATTRIBUTE_CONST;
 ^~~~~~
  CC       window.o
  CC       charset.o
  CC       coding.o
  CC       category.o
  CC       ccl.o
  CC       character.o
  CC       chartab.o
  CC       bidi.o
  CC       cm.o
  CC       term.o
In file included from term.c:58:
menu.h:33:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes]
 extern void finish_menu_items (void) ATTRIBUTE_CONST;
 ^~~~~~
  CC       terminal.o
  CC       xfaces.o
  CC       xterm.o
In file included from xterm.c:81:
menu.h:33:1: warning: ‘const’ attribute on function returning ‘void’ [-Wattributes]
 extern void finish_menu_items (void) ATTRIBUTE_CONST;
 ^~~~~~
  CC       xfns.o
  CC       xselect.o
  CC       xrdb.o
  CC       xsmfns.o
  CC       xsettings.o
  CC       gtkutil.o
  CC       emacsgtkfixed.o
  CC       dbusbind.o
  CC       emacs.o
  CC       keyboard.o
  CC       macros.o
  CC       keymap.o
  CC       sysdep.o
  CC       buffer.o
  CC       filelock.o
  CC       insdel.o
  CC       marker.o
  CC       minibuf.o
  CC       fileio.o
  CC       dired.o
  CC       cmds.o
  CC       casetab.o
  CC       casefiddle.o
  CC       indent.o
  CC       search.o
  CC       regex.o
regex.c: In function ‘analyze_first’:
regex.c:4027:4: warning: this statement may fall through [-Wimplicit-fallthrough=]
    switch (*p)
    ^~~~~~
regex.c:4043:2: note: here
  case on_failure_jump:
  ^~~~
  CC       undo.o
  CC       alloc.o
  CC       data.o
  GEN      buildobj.h
  CC       doc.o
  CC       editfns.o
  CC       callint.o
  CC       eval.o
  CC       floatfns.o
  CC       fns.o
  CC       font.o
  CC       print.o
  CC       lread.o
  CC       syntax.o
  CC       unexelf.o
  CC       bytecode.o
  CC       process.o
  CC       gnutls.o
  CC       callproc.o
  CC       region-cache.o
  CC       sound.o
  CC       atimer.o
  CC       doprnt.o
  CC       intervals.o
  CC       textprop.o
  CC       composite.o
  CC       xml.o
  CC       lcms.o
  CC       inotify.o
  CC       profiler.o
  CC       decompress.o
  CC       thread.o
  CC       systhread.o
  CC       sheap.o
  CC       xfont.o
  CC       ftfont.o
  CC       xftfont.o
  CC       ftxfont.o
  CC       fontset.o
  CC       fringe.o
  CC       image.o
  CC       xgselect.o
  CC       terminfo.o
  CC       lastfile.o
  CC       gmalloc.o
make -C ../admin/charsets all
make[2]: Entering directory '/home/eggert/src/gnu/emacs/emacs-26-sc/admin/charsets'
  GEN      ../../etc/charsets/JISX2131.map
  GEN      charsets.stamp
make[2]: Leaving directory '/home/eggert/src/gnu/emacs/emacs-26-sc/admin/charsets'
make -C ../admin/unidata charscript.el
make[2]: Entering directory '/home/eggert/src/gnu/emacs/emacs-26-sc/admin/unidata'
make[2]: Nothing to be done for 'charscript.el'.
make[2]: Leaving directory '/home/eggert/src/gnu/emacs/emacs-26-sc/admin/unidata'
  CCLD     temacs
/usr/bin/mkdir -p ../etc
setfattr -n user.pax.flags -v er temacs
make -C ../lisp update-subdirs
make[2]: Entering directory '/home/eggert/src/gnu/emacs/emacs-26-sc/lisp'
make[2]: Leaving directory '/home/eggert/src/gnu/emacs/emacs-26-sc/lisp'
./temacs --batch  --load loadup bootstrap
Loading loadup.el (source)...
Using load-path (/home/eggert/src/gnu/emacs/emacs-26-sc/lisp /home/eggert/src/gnu/emacs/emacs-26-sc/lisp/emacs-lisp /home/eggert/src/gnu/emacs/emacs-26-sc/lisp/progmodes /home/eggert/src/gnu/emacs/emacs-26-sc/lisp/language /home/eggert/src/gnu/emacs/emacs-26-sc/lisp/international /home/eggert/src/gnu/emacs/emacs-26-sc/lisp/textmodes /home/eggert/src/gnu/emacs/emacs-26-sc/lisp/vc)
Loading emacs-lisp/byte-run...
Loading emacs-lisp/backquote...
Loading subr...
Loading version...
Loading widget...
Loading custom...
Loading emacs-lisp/map-ynp...
Loading international/mule...
Loading international/mule-conf...
Loading env...
Loading format...
Loading bindings...
Loading window...
Loading files...
Loading emacs-lisp/macroexp...
Loading cus-face...
Loading faces...
Loading button...
Loading /home/eggert/src/gnu/emacs/emacs-26-sc/lisp/loaddefs.el (source)...
Loading emacs-lisp/nadvice...
Loading emacs-lisp/cl-preloaded...
Loading minibuffer...
Loading obarray...
Loading abbrev...
Loading /home/eggert/src/gnu/emacs/emacs-26-sc/lisp/simple.el (source)...
Loading help...
Loading jka-cmpr-hook...
Loading epa-hook...
Loading international/mule-cmds...
Loading case-table...
Loading /home/eggert/src/gnu/emacs/emacs-26-sc/lisp/international/charprop.el (source)...
Loading international/characters...
Loading composite...
Loading language/chinese...
Loading language/cyrillic...
Loading language/indian...
Loading language/sinhala...
Loading language/english...
Loading language/ethiopic...
Loading language/european...
Loading language/czech...
Loading language/slovak...
Loading language/romanian...
Loading language/greek...
Loading language/hebrew...
Loading international/cp51932...
Loading international/eucjp-ms...
Loading language/japanese...
Loading language/korean...
Loading language/lao...
Loading language/tai-viet...
Loading language/thai...
Loading language/tibetan...
Loading language/vietnamese...
Loading language/misc-lang...
Loading language/utf-8-lang...
Loading language/georgian...
Loading language/khmer...
Loading language/burmese...
Loading language/cham...
Loading indent...
Loading emacs-lisp/cl-generic...
Loading frame...
Loading startup...
Loading term/tty-colors...
Loading font-core...
Loading facemenu...
Loading emacs-lisp/syntax...
Loading font-lock...
Loading jit-lock...
Loading mouse...
Loading scroll-bar...
Loading select...
Loading emacs-lisp/timer...
Loading isearch...
Loading rfn-eshadow...
Loading menu-bar...
Loading emacs-lisp/lisp...
Loading textmodes/page...
Loading register...
Loading textmodes/paragraphs...
Loading progmodes/prog-mode...
Loading emacs-lisp/lisp-mode...
Loading progmodes/elisp-mode...
Loading textmodes/text-mode...
Loading textmodes/fill...
Loading newcomment...
Loading replace...
Loading emacs-lisp/tabulated-list...
Loading buff-menu...
Loading fringe...
Loading emacs-lisp/regexp-opt...
Loading image...
Loading international/fontset...
Loading dnd...
Loading tool-bar...
Loading dynamic-setting...
Loading x-dnd...
Loading term/common-win...
Loading term/x-win...
Loading mwheel...
Loading emacs-lisp/float-sup...
Loading vc/vc-hooks...
Loading vc/ediff-hook...
Loading uniquify...
Loading electric...
Loading emacs-lisp/eldoc...
Loading cus-start...
Loading tooltip...
Loading /home/eggert/src/gnu/emacs/emacs-26-sc/lisp/leim/leim-list.el (source)...
Finding pointers to doc strings...
Finding pointers to doc strings...done
Dumping under the name emacs
13536192 of 33554432 static heap bytes used
97503 pure bytes used
mv -f emacs bootstrap-emacs
make -C ../lisp compile-first EMACS="../src/bootstrap-emacs"
make[2]: Entering directory '/home/eggert/src/gnu/emacs/emacs-26-sc/lisp'
make[2]: Nothing to be done for 'compile-first'.
make[2]: Leaving directory '/home/eggert/src/gnu/emacs/emacs-26-sc/lisp'
make -C ../lisp autoloads EMACS="../src/bootstrap-emacs"
make[2]: Entering directory '/home/eggert/src/gnu/emacs/emacs-26-sc/lisp'
make -C ../leim all EMACS="../src/bootstrap-emacs"
make[3]: Entering directory '/home/eggert/src/gnu/emacs/emacs-26-sc/leim'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/eggert/src/gnu/emacs/emacs-26-sc/leim'
make -C ../admin/grammars all EMACS="../../src/bootstrap-emacs"
make[3]: Entering directory '/home/eggert/src/gnu/emacs/emacs-26-sc/admin/grammars'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/eggert/src/gnu/emacs/emacs-26-sc/admin/grammars'
  GEN      calendar/hol-loaddefs.el
Directories for loaddefs: . ./calc ./calendar ./cedet ./cedet/ede ./cedet/semantic ./cedet/semantic/analyze ./cedet/semantic/bovine ./cedet/semantic/decorate ./cedet/semantic/symref ./cedet/semantic/wisent ./cedet/srecode ./emacs-lisp ./emulation ./erc ./eshell ./gnus ./image ./international ./language ./leim ./leim/ja-dic ./leim/quail ./mail ./mh-e ./net ./nxml ./org ./play ./progmodes ./textmodes ./url ./vc
  GEN      loaddefs.el
make[2]: Leaving directory '/home/eggert/src/gnu/emacs/emacs-26-sc/lisp'
make -C ../admin/unidata all EMACS="../../src/bootstrap-emacs"
make[2]: Entering directory '/home/eggert/src/gnu/emacs/emacs-26-sc/admin/unidata'
  ELC      uvs.elc

In uvs-dump:
uvs.el:179:22:Warning: ‘string-to-unibyte’ is an obsolete function (as of
    26.1); use ‘encode-coding-string’.
uvs.el:182:4:Warning: ‘string-to-unibyte’ is an obsolete function (as of
    26.1); use ‘encode-coding-string’.
  ELC      unidata-gen.elc
  GEN      unidata.txt
make[2]: Leaving directory '/home/eggert/src/gnu/emacs/emacs-26-sc/admin/unidata'
make -C ../admin/charsets cp51932.el
make[2]: Entering directory '/home/eggert/src/gnu/emacs/emacs-26-sc/admin/charsets'
make[2]: Nothing to be done for 'cp51932.el'.
make[2]: Leaving directory '/home/eggert/src/gnu/emacs/emacs-26-sc/admin/charsets'
make -C ../admin/charsets eucjp-ms.el
make[2]: Entering directory '/home/eggert/src/gnu/emacs/emacs-26-sc/admin/charsets'
make[2]: Nothing to be done for 'eucjp-ms.el'.
make[2]: Leaving directory '/home/eggert/src/gnu/emacs/emacs-26-sc/admin/charsets'
make[2]: Entering directory '/home/eggert/src/gnu/emacs/emacs-26-sc/lisp'
  ELC      ../lisp/simple.elc
Reloading stale loaddefs.el
Loading /home/eggert/src/gnu/emacs/emacs-26-sc/lisp/loaddefs.el (source)...
make[2]: Leaving directory '/home/eggert/src/gnu/emacs/emacs-26-sc/lisp'
  GEN      ../etc/DOC
LC_ALL=C ./temacs -batch  -l loadup dump
Loading loadup.el (source)...
Using load-path (/home/eggert/src/gnu/emacs/emacs-26-sc/lisp)
Loading emacs-lisp/byte-run...
Loading emacs-lisp/backquote...
Loading subr...
Loading version...
Loading widget...
Loading custom...
Loading emacs-lisp/map-ynp...
Loading international/mule...
Loading international/mule-conf...
Loading env...
Loading format...
Loading bindings...
Loading window...
Loading files...
Loading emacs-lisp/macroexp...
Loading cus-face...
Loading faces...
Loading button...
Loading loaddefs.el (source)...
Loading emacs-lisp/nadvice...
Loading emacs-lisp/cl-preloaded...
Loading minibuffer...
Loading obarray...
Loading abbrev...
Loading simple...
Loading help...
Loading jka-cmpr-hook...
Loading epa-hook...
Loading international/mule-cmds...
Loading case-table...
Loading international/charprop.el (source)...
Loading international/characters...
Loading international/charscript...
Loading composite...
Loading language/chinese...
Loading language/cyrillic...
Loading language/indian...
Loading language/sinhala...
Loading language/english...
Loading language/ethiopic...
Loading language/european...
Loading language/czech...
Loading language/slovak...
Loading language/romanian...
Loading language/greek...
Loading language/hebrew...
Loading international/cp51932...
Loading international/eucjp-ms...
Loading language/japanese...
Loading language/korean...
Loading language/lao...
Loading language/tai-viet...
Loading language/thai...
Loading language/tibetan...
Loading language/vietnamese...
Loading language/misc-lang...
Loading language/utf-8-lang...
Loading language/georgian...
Loading language/khmer...
Loading language/burmese...
Loading language/cham...
Loading indent...
Loading emacs-lisp/cl-generic...
Loading frame...
Loading startup...
Loading term/tty-colors...
Loading font-core...
Loading facemenu...
Loading emacs-lisp/syntax...
Loading font-lock...
Loading jit-lock...
Loading mouse...
Loading scroll-bar...
Loading select...
Loading emacs-lisp/timer...
Loading isearch...
Loading rfn-eshadow...
Loading menu-bar...
Loading emacs-lisp/lisp...
Loading textmodes/page...
Loading register...
Loading textmodes/paragraphs...
Loading progmodes/prog-mode...
Loading emacs-lisp/lisp-mode...
Loading progmodes/elisp-mode...
Loading textmodes/text-mode...
Loading textmodes/fill...
Loading newcomment...
Loading replace...
Loading emacs-lisp/tabulated-list...
Loading buff-menu...
Loading fringe...
Loading emacs-lisp/regexp-opt...
Loading image...
Loading international/fontset...
Loading dnd...
Loading tool-bar...
Loading dynamic-setting...
Loading x-dnd...
Loading term/common-win...
Loading term/x-win...
Loading mwheel...
Loading emacs-lisp/float-sup...
Loading vc/vc-hooks...
Loading vc/ediff-hook...
Loading uniquify...
Loading electric...
Loading emacs-lisp/eldoc...
Loading cus-start...
Loading tooltip...
Loading leim/leim-list.el (source)...
Waiting for git...
Finding pointers to doc strings...
Finding pointers to doc strings...done
Pure-hashed: 15476 strings, 4061 vectors, 40274 conses, 3922 bytecodes, 176 others
Dumping under the name emacs
11955136 of 33554432 static heap bytes used
2446951 pure bytes used
Adding name emacs-26.1.1
ln -f emacs bootstrap-emacs
make[1]: Leaving directory '/home/eggert/src/gnu/emacs/emacs-26-sc/src'
make -C lisp all
make[1]: Entering directory '/home/eggert/src/gnu/emacs/emacs-26-sc/lisp'
make -C ../leim all EMACS="../src/emacs"
make[2]: Entering directory '/home/eggert/src/gnu/emacs/emacs-26-sc/leim'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/eggert/src/gnu/emacs/emacs-26-sc/leim'
make -C ../admin/grammars all EMACS="../../src/emacs"
make[2]: Entering directory '/home/eggert/src/gnu/emacs/emacs-26-sc/admin/grammars'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/eggert/src/gnu/emacs/emacs-26-sc/admin/grammars'
make[2]: Entering directory '/home/eggert/src/gnu/emacs/emacs-26-sc/lisp'
  ELC      term.elc
  ELC      textmodes/flyspell.elc
make[2]: Leaving directory '/home/eggert/src/gnu/emacs/emacs-26-sc/lisp'
make[1]: Leaving directory '/home/eggert/src/gnu/emacs/emacs-26-sc/lisp'
make info-real info-dir
make[1]: Entering directory '/home/eggert/src/gnu/emacs/emacs-26-sc'
make -C doc/lispref info
make[2]: Entering directory '/home/eggert/src/gnu/emacs/emacs-26-sc/doc/lispref'
make[2]: Nothing to be done for 'info'.
make[2]: Leaving directory '/home/eggert/src/gnu/emacs/emacs-26-sc/doc/lispref'
make -C doc/lispintro info
make[2]: Entering directory '/home/eggert/src/gnu/emacs/emacs-26-sc/doc/lispintro'
make[2]: Nothing to be done for 'info'.
make[2]: Leaving directory '/home/eggert/src/gnu/emacs/emacs-26-sc/doc/lispintro'
make -C doc/emacs info
make[2]: Entering directory '/home/eggert/src/gnu/emacs/emacs-26-sc/doc/emacs'
make[2]: Nothing to be done for 'info'.
make[2]: Leaving directory '/home/eggert/src/gnu/emacs/emacs-26-sc/doc/emacs'
make -C doc/misc info
make[2]: Entering directory '/home/eggert/src/gnu/emacs/emacs-26-sc/doc/misc'
make[2]: Nothing to be done for 'info'.
make[2]: Leaving directory '/home/eggert/src/gnu/emacs/emacs-26-sc/doc/misc'
make[1]: Nothing to be done for 'info-dir'.
make[1]: Leaving directory '/home/eggert/src/gnu/emacs/emacs-26-sc'

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-05-01  0:22 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-04-30 17:12 Emacs release branch warnings with GCC 8 Paul Eggert
2018-04-30 19:38 ` Eli Zaretskii
2018-04-30 19:52   ` Paul Eggert
2018-04-30 19:58     ` Eli Zaretskii
2018-05-01  0:22       ` Paul Eggert

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).