[gdb/build] Fix Wmaybe-uninitialized in gdb_optional.h
When building with CFLAGS/CXXFLAGS="-O2 -g -Wall", we run into: ... In file included from src/gdb/exceptions.h:23, from src/gdb/utils.h:24, from src/gdb/defs.h:630, from src/gdb/record-btrace.c:22: src/gdb/ui-out.h: In function 'void btrace_insn_history(ui_out*, \ const btrace_thread_info*, const btrace_insn_iterator*, \ const btrace_insn_iterator*, gdb_disassembly_flags)': src/gdb/ui-out.h:352:18: warning: \ 'asm_list.ui_out_emit_type<ui_out_type_list>::m_uiout' may be used \ uninitialized in this function [-Wmaybe-uninitialized] 352 | m_uiout->end (Type); | ~~~~~~~~~~~~~^~~~~~ src/gdb/record-btrace.c:795:35: note: \ 'asm_list.ui_out_emit_type<ui_out_type_list>::m_uiout' was declared here 795 | gdb::optional<ui_out_emit_list> asm_list; | ^~~~~~~~ ... This is reported as PR gcc/80635 - "[8/9/10/11 regression] std::optional and bogus -Wmaybe-uninitialized warning". Silence the warning by using the workaround suggested here ( https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635#c53 ): ... union { struct { } m_dummy; T m_item; + volatile char dont_use; // Silences -Wmaybe-uninitialized warning. }; ... Build on x86_64-linux. gdbsupport/ChangeLog: 2020-07-28 Tom de Vries <tdevries@suse.de> PR build/26281 * gdb_optional.h (class optional): Add volatile member to union contaning m_dummy and m_item.
This commit is contained in:
parent
d70f978b44
commit
866b34a12d
@ -1,3 +1,9 @@
|
||||
2020-07-28 Tom de Vries <tdevries@suse.de>
|
||||
|
||||
PR build/26281
|
||||
* gdb_optional.h (class optional): Add volatile member to union
|
||||
contaning m_dummy and m_item.
|
||||
|
||||
2020-07-17 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||
|
||||
* tdesc.h (struct target_desc_deleter): Moved here
|
||||
|
@ -208,6 +208,8 @@ private:
|
||||
{
|
||||
struct { } m_dummy;
|
||||
T m_item;
|
||||
volatile char dont_use; /* Silences -Wmaybe-uninitialized warning, see
|
||||
PR gcc/80635. */
|
||||
};
|
||||
|
||||
/* True if the object was ever emplaced. */
|
||||
|
Loading…
Reference in New Issue
Block a user