GNU bug report logs - #39857
27.0.90; Compilation warning about alloca in 32-bit MinGW build

Previous Next

Package: emacs;

Reported by: Eli Zaretskii <eliz <at> gnu.org>

Date: Sun, 1 Mar 2020 17:21:02 UTC

Severity: minor

Found in version 27.0.90

To reply to this bug, email your comments to 39857 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#39857; Package emacs. (Sun, 01 Mar 2020 17:21:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Eli Zaretskii <eliz <at> gnu.org>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 01 Mar 2020 17:21:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: bug-gnu-emacs <at> gnu.org
Subject: 27.0.90; Compilation warning about alloca in 32-bit MinGW build
Date: Sun, 01 Mar 2020 19:20:31 +0200
Building a 32-bit Emacs 27.0.90 with MinGW GCC 8.2 and -Og
optimization produces the following compilation warning:

    CC       edittfns.o
  In file included from lisp.h:24,
		   from editfns.c:36:
  editfns.c: In function 'styled_format':
  ../lib/alloca.h:46:18: warning: argument 1 range [2147483648, 4294961362] exceeds maximum object size 2147483647 [-Walloc-size-larger-than=]
   #  define alloca __builtin_alloca
  lisp.h:4810:49: note: in expansion of macro 'alloca'
   #define AVAIL_ALLOCA(size) (sa_avail -= (size), alloca (size))
						   ^~~~~~
  lisp.h:4815:9: note: in expansion of macro 'AVAIL_ALLOCA'
	 ? AVAIL_ALLOCA (size)   \
	   ^~~~~~~~~~~~
  editfns.c:3167:10: note: in expansion of macro 'SAFE_ALLOCA'
     info = SAFE_ALLOCA (alloca_size);
	    ^~~~~~~~~~~
  ../lib/alloca.h:46:18: note: in a call to built-in allocation function '__builtin_alloca'
   #  define alloca __builtin_alloca
  lisp.h:4810:49: note: in expansion of macro 'alloca'
   #define AVAIL_ALLOCA(size) (sa_avail -= (size), alloca (size))
						   ^~~~~~
  lisp.h:4815:9: note: in expansion of macro 'AVAIL_ALLOCA'
	 ? AVAIL_ALLOCA (size)   \
	   ^~~~~~~~~~~~
  editfns.c:3167:10: note: in expansion of macro 'SAFE_ALLOCA'
     info = SAFE_ALLOCA (alloca_size);
	    ^~~~~~~~~~~

The GCC manual says about -Walloc-size-larger-than=N:

  '-Walloc-size-larger-than=N'
       Warn about calls to functions decorated with attribute 'alloc_size'
       that attempt to allocate objects larger than the specified number
       of bytes, or where the result of the size computation in an integer
       type with infinite precision would exceed 'SIZE_MAX / 2'.  The
       option argument N may end in one of the standard suffixes
       designating a multiple of bytes such as 'kB' and 'KiB' for kilobyte
       and kibibyte, respectively, 'MB' and 'MiB' for megabyte and
       mebibyte, and so on.  '-Walloc-size-larger-than='PTRDIFF_MAX is
       enabled by default.  Warnings controlled by the option can be
       disabled by specifying N of SIZE_MAX or more.  *Note Function
       Attributes::.

I guess __builtin_alloca is "decorated with alloc_size" attribute, and
thus the warning.  Of course large memory allocations never end up in
alloca, we call malloc instead.  Which probably means GCC is not smart
enough to understand SAFE_ALLOCA?

WIBNI this annoying warning could be shut up?

TIA.

In GNU Emacs 27.0.90 (build 1, i686-pc-mingw32)
 of 2020-03-01 built on HOME-C4E4A596F7
Windowing system distributor 'Microsoft Corp.', version 5.1.2600
System Description: Microsoft Windows XP Service Pack 3 (v5.1.0.2600)

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.

Configured using:
 'configure -C --prefix=/d/usr --with-wide-int --with-modules
 'CFLAGS=-Og -gdwarf-4 -g3''

Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY W32NOTIFY ACL GNUTLS LIBXML2
HARFBUZZ ZLIB TOOLKIT_SCROLL_BARS MODULES THREADS JSON PDUMPER LCMS2 GMP

Important settings:
  value of $LANG: ENU
  locale-coding-system: cp1255

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-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
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
format-spec rfc822 mml easymenu mml-sec password-cache epa derived epg
epg-config gnus-util rmail rmail-loaddefs text-property-search time-date
subr-x seq byte-opt gv bytecomp byte-compile cconv 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
tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel dos-w32 ls-lisp disp-table term/w32-win w32-win w32-vars
term/common-win tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer
select scroll-bar 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 w32notify w32 lcms2 multi-tty make-network-process
emacs)

Memory information:
((conses 16 51245 8998)
 (symbols 48 7171 1)
 (strings 16 18830 2275)
 (string-bytes 1 532711)
 (vectors 16 10213)
 (vector-slots 8 131934 8682)
 (floats 8 21 109)
 (intervals 40 252 92)
 (buffers 888 11))




This bug report was last modified 4 years and 64 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.