From ae73e2e2435cb706b18ba05734aee4137a271b3c Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Fri, 18 Jan 2019 07:45:01 -0700 Subject: [PATCH] Remove a warning from symtab.c MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit When building symtab.c, I get: ../../binutils-gdb/gdb/language.h: In function ‘void print_symbol_info(search_domain, symbol*, int, const char*)’: ../../binutils-gdb/gdb/language.h:738:20: warning: ‘*((void*)& l +4)’ may be used uninitialized in this function [-Wmaybe-uninitialized] set_language (m_lang); ~~~~~~~~~~~~~^~~~~~~~ ../../binutils-gdb/gdb/symtab.c:4613:41: note: ‘*((void*)& l +4)’ was declared here scoped_switch_to_sym_language_if_auto l (sym); ^ This is another instance of the std::optional problem, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635. However, it seemed straightforward and inexpensive to me to silence this one, which is what this patch does. gdb/ChangeLog 2019-01-23 Tom Tromey * language.h (class scoped_switch_to_sym_language_if_auto): Initialize m_lang in both cases. --- gdb/ChangeLog | 5 +++++ gdb/language.h | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f342acd..f302fc4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2019-01-23 Tom Tromey + + * language.h (class scoped_switch_to_sym_language_if_auto): + Initialize m_lang in both cases. + 2019-01-23 Alan Hayward * nat/aarch64-linux.c (aarch64_linux_new_thread): Replace XNEW diff --git a/gdb/language.h b/gdb/language.h index 1b88097..d56ec20 100644 --- a/gdb/language.h +++ b/gdb/language.h @@ -726,7 +726,12 @@ public: set_language (SYMBOL_LANGUAGE (sym)); } else - m_switched = false; + { + m_switched = false; + /* Assign to m_lang to silence a GCC warning. See + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635. */ + m_lang = language_unknown; + } } ~scoped_switch_to_sym_language_if_auto () -- 2.7.4