Remove a warning from symtab.c
Commit Message
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-18 Tom Tromey <tom@tromey.com>
* 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(-)
Comments
On 01/18/2019 02:46 PM, Tom Tromey wrote:
> 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.
Yeah, seems harmless. OK.
Thanks,
Pedro Alves
@@ -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 ()