[gdb/tui] Fix Wmaybe-uninitialized in tui_find_disassembly_address
authorTom de Vries <tdevries@suse.de>
Mon, 13 Nov 2023 08:31:20 +0000 (09:31 +0100)
committerTom de Vries <tdevries@suse.de>
Mon, 13 Nov 2023 08:31:20 +0000 (09:31 +0100)
When building gdb with -O2, we run into:
...
gdb/tui/tui-disasm.c: In function ‘CORE_ADDR tui_find_disassembly_address \
  (gdbarch*, CORE_ADDR, int)’:
gdb/tui/tui-disasm.c:293:7: warning: ‘last_addr’ may be used uninitialized \
  in this function [-Wmaybe-uninitialized]
       if (last_addr < pc)
       ^~
...

The warning triggers since commit 72535eb14bd ("[gdb/tui] Fix segfault in
tui_find_disassembly_address").

Fix the warning by ensuring that last_addr is initialized at the point of
use:
...
+      last_addr = asm_lines.back ().addr;
       if (last_addr < pc)
...

Tested on x86_64-linux.

gdb/tui/tui-disasm.c

index 9965ae134fed51fca8d456d87029d2318a93054d..dcafbfbb802f8dfbba242ad762615b73f73f94b2 100644 (file)
@@ -278,7 +278,6 @@ tui_find_disassembly_address (struct gdbarch *gdbarch, CORE_ADDR pc, int from)
          /* Take the best possible match we have.  */
          new_low = *possible_new_low;
          next_addr = tui_disassemble (gdbarch, asm_lines, new_low, max_lines);
-         last_addr = asm_lines.back ().addr;
        }
 
       /* The following walk forward assumes that ASM_LINES contains exactly
@@ -290,6 +289,7 @@ tui_find_disassembly_address (struct gdbarch *gdbarch, CORE_ADDR pc, int from)
         We keep the disassembled instructions in the 'lines' window
         and shift it downward (increasing its addresses).  */
       int pos = max_lines - 1;
+      last_addr = asm_lines.back ().addr;
       if (last_addr < pc)
        do
          {