From: Tom de Vries Date: Thu, 23 Jul 2020 11:45:46 +0000 (+0200) Subject: [gdb/tui] Fix Wmaybe-uninitialized warning in tui-winsource.c X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=90fcc46681979a7759d16e738a98c9e666e6e88f;p=binutils-gdb.git [gdb/tui] Fix Wmaybe-uninitialized warning in tui-winsource.c When compiling with CFLAGS/CXXFLAGS="-O0 -g -Wall" and using g++ 11.0.0, we run into: ... src/gdb/tui/tui-winsource.c: In function \ 'void tui_update_all_breakpoint_info(breakpoint*)': src/gdb/tui/tui-winsource.c:427:58: warning: '' may be used \ uninitialized [-Wmaybe-uninitialized] 427 | for (tui_source_window_base *win : tui_source_windows ()) | ^ In file included from src/gdb/tui/tui-winsource.c:38: src/gdb/tui/tui-winsource.h:236:30: note: by argument 1 of type \ 'const tui_source_windows*' to 'tui_source_window_iterator \ tui_source_windows::begin() const' declared here 236 | tui_source_window_iterator begin () const | ^~~~~ src/gdb/tui/tui-winsource.c:427:58: note: '' declared here 427 | for (tui_source_window_base *win : tui_source_windows ()) | ^ ... The warning doesn't make sense for an empty struct, PR gcc/96295 has been filed about that. For now, work around the warning by defining a default constructor. Build on x86_64-linux. gdb/ChangeLog: 2020-07-23 Tom de Vries PR tui/26282 * tui/tui-winsource.h (struct tui_source_windows::tui_source_windows): New default constructor. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c400d234f5f..37035206f49 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2020-07-23 Tom de Vries + + PR tui/26282 + * tui/tui-winsource.h (struct tui_source_windows::tui_source_windows): + New default constructor. + 2020-07-23 Andrew Burgess * disasm.c (do_mixed_source_and_assembly_deprecated): Don't diff --git a/gdb/tui/tui-winsource.h b/gdb/tui/tui-winsource.h index fab1487f637..ba9c0fd505e 100644 --- a/gdb/tui/tui-winsource.h +++ b/gdb/tui/tui-winsource.h @@ -233,6 +233,11 @@ private: struct tui_source_windows { + /* Work around Wmaybe-uninitalized warning with g++ 11.0.0, see also + PR gcc/96295. Note that "tui_source_windows () = default" doesn't work + around the warning. */ + tui_source_windows () {} + tui_source_window_iterator begin () const { return tui_source_window_iterator (tui_windows.begin (),