gdb/linespec.c: Fix -Wmaybe-uninitialized warning

Message ID 20230107004941.589074-1-amerey@redhat.com
State Committed
Commit 2ff63a29b0b01f949c8365f761e883d29709c44a
Headers
Series gdb/linespec.c: Fix -Wmaybe-uninitialized warning |

Commit Message

Aaron Merey Jan. 7, 2023, 12:49 a.m. UTC
  Although the bool want_start_sal isn't actually used without being assigned
a value, initialize it to be false in order to prevent the following
-Wmaybe-uninitialized warning:

    linespec.c: In function ‘void minsym_found(linespec_state*, objfile*, minimal_symbol*, std::vector<symtab_and_line>*)’:
    linespec.c:4150:19: warning: ‘want_start_sal’ may be used uninitialized [-Wmaybe-uninitialized]
     4150 |   if (is_function && want_start_sal)
---
 gdb/linespec.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Tom Tromey Jan. 9, 2023, 5:10 p.m. UTC | #1
>>>>> "Aaron" == Aaron Merey via Gdb-patches <gdb-patches@sourceware.org> writes:

Aaron> Although the bool want_start_sal isn't actually used without being assigned
Aaron> a value, initialize it to be false in order to prevent the following
Aaron> -Wmaybe-uninitialized warning:

Thanks, this is ok.
I think normally we allow these little uninitialized warning fixes under
the obvious rule.

Tom
  
Aaron Merey Jan. 10, 2023, 1:16 a.m. UTC | #2
Hi Tom,

On Mon, Jan 9, 2023 at 12:10 PM Tom Tromey <tom@tromey.com> wrote:
> Thanks, this is ok.
> I think normally we allow these little uninitialized warning fixes under
> the obvious rule.

Thanks, pushed as commit 2ff63a29b0b. Will push as obvious next time.

Aaron
  
Simon Marchi Jan. 10, 2023, 2:53 a.m. UTC | #3
On 1/9/23 20:16, Aaron Merey via Gdb-patches wrote:
> Hi Tom,
> 
> On Mon, Jan 9, 2023 at 12:10 PM Tom Tromey <tom@tromey.com> wrote:
>> Thanks, this is ok.
>> I think normally we allow these little uninitialized warning fixes under
>> the obvious rule.
> 
> Thanks, pushed as commit 2ff63a29b0b. Will push as obvious next time.
> 
> Aaron
> 

In my opinion, these shouldn't be obvious, because there's always the
chance that the compiler is actually right (and the author misses it),
and by initializing the variable, we cover up a bug.

Simon
  

Patch

diff --git a/gdb/linespec.c b/gdb/linespec.c
index e9339c3338c..b8c77541a29 100644
--- a/gdb/linespec.c
+++ b/gdb/linespec.c
@@ -4129,7 +4129,7 @@  minsym_found (struct linespec_state *self, struct objfile *objfile,
 	      struct minimal_symbol *msymbol,
 	      std::vector<symtab_and_line> *result)
 {
-  bool want_start_sal;
+  bool want_start_sal = false;
 
   CORE_ADDR func_addr;
   bool is_function = msymbol_is_function (objfile, msymbol, &func_addr);