[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: warnings in win32 builds from trunk
From: |
Eli Zaretskii |
Subject: |
Re: warnings in win32 builds from trunk |
Date: |
Sun, 03 Apr 2022 09:17:29 +0300 |
> From: Corwin Brust <corwin@bru.st>
> Date: Sat, 2 Apr 2022 18:33:27 -0500
>
> Attempting to build a snapshot from the master branch today I noticed
> some warnings. Here they are; please let me know if there's else I
> might helpfully do to troubleshoot/debug these (e.g. open a bug
> report).
Please file a bug report for each one of them.
> In file included from C:/Users/corwi/emacs-build/git/master/src/process.c:33:
> C:/Users/corwi/emacs-build/git/master/src/process.c: In function
> 'Fmake_process':
> C:/Users/corwi/emacs-build/git/master/src/lisp.h:1649:31: warning:
> null pointer dereference [-Wnull-dereference]
> 1649 | return XSTRING (string)->u.s.data;
> | ~~~~~~~~~~~~~~~~~~~~~^~~~~
Line 1649 of lisp.h is inside SDATA. But since Fmake_process doesn't
call SDATA directly, I don't know which string object is this about.
(Really, the compiler should do a better job when reporting such
issues, by showing all the relevant source locations.)
> C:/Users/corwi/emacs-build/git/master/src/w32menu.c: In function
> 'set_frame_menubar':
> C:/Users/corwi/emacs-build/git/master/src/w32menu.c:324:9: warning:
> 'memcpy' offset [3, 10] from the object at '<unknown>' is out of the
> bounds of referenced subobject 'contents' with type 'struct Lisp_X
> *[]' at offset 3 [-Warray-bounds]
> 324 | memcpy (previous_items, XVECTOR
> (f->menu_bar_vector)->contents,
> |
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 325 | previous_menu_items_used * word_size);
> | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from C:/Users/corwi/emacs-build/git/master/src/w32menu.c:26:
> C:/Users/corwi/emacs-build/git/master/src/lisp.h:1725:17: note:
> subobject 'contents' declared here
> 1725 | Lisp_Object contents[FLEXIBLE_ARRAY_MEMBER];
> | ^~~~~~~~
This is some general problem with FLEXIBLE_ARRAY_MEMBER, not specific
to w32. Sounds like latest compilers don't like that. Are you
building with custom compiler switches, per chance?
> C:/Users/corwi/emacs-build/git/master/src/w32heap.c: In function 'getrlimit':
> C:/Users/corwi/emacs-build/git/master/src/w32heap.c:853:14: warning:
> 'm' may be used uninitialized [-Wmaybe-uninitialized]
> 853 | if (!VirtualQuery ((LPCVOID) &m, &m, sizeof m))
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This is a bogus warning, ignore it. The compiler doesn't understand
the semantics of VirtualQuery.
Thanks.