[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PULL 04/16] curses: Fixes curses compiling errors.
From: |
Peter Maydell |
Subject: |
Re: [PULL 04/16] curses: Fixes curses compiling errors. |
Date: |
Tue, 8 Sep 2020 21:28:51 +0100 |
On Tue, 8 Sep 2020 at 19:56, Yonggang Luo <luoyonggang@gmail.com> wrote:
>
> This is the compiling error:
> ../ui/curses.c: In function 'curses_refresh':
> ../ui/curses.c:256:5: error: 'next_maybe_keycode' may be used uninitialized
> in this function [-Werror=maybe-uninitialized]
> 256 | curses2foo(_curses2keycode, _curseskey2keycode, chr,
> maybe_keycode)
> | ^~~~~~~~~~
> ../ui/curses.c:302:32: note: 'next_maybe_keycode' was declared here
> 302 | enum maybe_keycode next_maybe_keycode;
> | ^~~~~~~~~~~~~~~~~~
> ../ui/curses.c:256:5: error: 'maybe_keycode' may be used uninitialized in
> this function [-Werror=maybe-uninitialized]
> 256 | curses2foo(_curses2keycode, _curseskey2keycode, chr,
> maybe_keycode)
> | ^~~~~~~~~~
> ../ui/curses.c:265:24: note: 'maybe_keycode' was declared here
> 265 | enum maybe_keycode maybe_keycode;
> | ^~~~~~~~~~~~~
> cc1.exe: all warnings being treated as errors
> Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
> ---
> ui/curses.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/ui/curses.c b/ui/curses.c
> index 12bc682cf9..e4f9588c3e 100644
> --- a/ui/curses.c
> +++ b/ui/curses.c
> @@ -262,7 +262,7 @@ static int curses2foo(const int _curses2foo[], const int
> _curseskey2foo[],
> static void curses_refresh(DisplayChangeListener *dcl)
> {
> int chr, keysym, keycode, keycode_alt;
> - enum maybe_keycode maybe_keycode;
> + enum maybe_keycode maybe_keycode = CURSES_KEYCODE;
>
> curses_winch_check();
>
> @@ -299,7 +299,7 @@ static void curses_refresh(DisplayChangeListener *dcl)
>
> /* alt or esc key */
> if (keycode == 1) {
> - enum maybe_keycode next_maybe_keycode;
> + enum maybe_keycode next_maybe_keycode = CURSES_KEYCODE;
> int nextchr = console_getch(&next_maybe_keycode);
>
> if (nextchr != -1) {
The problem here is that the compiler hasn't noticed that it's
impossible to return something other than -1 from console_getch()
without initializing next_maybe_keycode.
There are two possible reasons for this:
(1) your gcc is a bit old -- newer gcc are better at working
out this kind of thing. But you said on irc that you're using
gcc 10.2.0, which is new...
(2) this is a variant of the problem with the system headers
that causes us to have to redefine assert() in osdep.h, only
with abort() (ie abort() is perhaps not marked as noreturn in
the system headers). If this theory is true, then changing
the abort() in console_getch() to instead be g_assert_not_reached()
would be a different way to avoid the warnings (and if that works
we should probably fix up abort() the way we do assert()).
thanks
-- PMM
- [PULL 00/16] Msys2 patches patches, Yonggang Luo, 2020/09/08
- [PULL 01/16] block: Fixes nfs on msys2/mingw, Yonggang Luo, 2020/09/08
- [PULL 02/16] ci: fixes msys2 build by upgrading capstone to 4.0.2, Yonggang Luo, 2020/09/08
- [PULL 04/16] curses: Fixes curses compiling errors., Yonggang Luo, 2020/09/08
- Re: [PULL 04/16] curses: Fixes curses compiling errors.,
Peter Maydell <=
- [PULL 05/16] tests: disable /char/stdio/* tests in test-char.c on win32, Yonggang Luo, 2020/09/08
- [PULL 03/16] configure: Fixes ncursesw detection under msys2/mingw and enable curses, Yonggang Luo, 2020/09/08
- [PULL 06/16] ci: Enable msys2 ci in cirrus, Yonggang Luo, 2020/09/08
- [PULL 07/16] tests: Trying fixes test-replication.c on msys2/mingw., Yonggang Luo, 2020/09/08
- [PULL 08/16] block: get file-win32.c handle locking option consistence with file-posix.c, Yonggang Luo, 2020/09/08
- [PULL 09/16] osdep: These function are only available on Non-Win32 system., Yonggang Luo, 2020/09/08
- [PULL 10/16] meson: Use -b to ignore CR vs. CR-LF issues on Windows, Yonggang Luo, 2020/09/08
- [PULL 11/16] meson: disable crypto tests are empty under win32, Yonggang Luo, 2020/09/08