diff options
author | Tom Tromey <tom@tromey.com> | 2019-01-18 07:45:01 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2019-01-23 10:34:55 -0700 |
commit | ae73e2e2435cb706b18ba05734aee4137a271b3c (patch) | |
tree | 674ea520b5607d956b5e43d183d0778ac18b1c07 /gdb/language.h | |
parent | 6594e122864119d7b1434599c22b112f98e178ca (diff) | |
download | gdb-ae73e2e2435cb706b18ba05734aee4137a271b3c.zip gdb-ae73e2e2435cb706b18ba05734aee4137a271b3c.tar.gz gdb-ae73e2e2435cb706b18ba05734aee4137a271b3c.tar.bz2 |
Remove a warning from symtab.c
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 <tom@tromey.com>
* language.h (class scoped_switch_to_sym_language_if_auto):
Initialize m_lang in both cases.
Diffstat (limited to 'gdb/language.h')
-rw-r--r-- | gdb/language.h | 7 |
1 files changed, 6 insertions, 1 deletions
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 () |