gdb/build: Fix Wpessimizing-move in clang build
authorEnze Li <lienze2010@hotmail.com>
Fri, 28 Jan 2022 13:26:40 +0000 (21:26 +0800)
committerEnze Li <lienze2010@hotmail.com>
Fri, 28 Jan 2022 15:02:36 +0000 (23:02 +0800)
When building with clang, I run into an error:

...
tui/tui-disasm.c:138:25: error: moving a temporary object prevents copy
elision [-Werror,-Wpessimizing-move]
      tal.addr_string = std::move (gdb_dis_out.release ());
                        ^
tui/tui-disasm.c:138:25: note: remove std::move call here
      tal.addr_string = std::move (gdb_dis_out.release ());
                        ^~~~~~~~~~~                      ~
...

The error above is caused by the recent commit 5d10a2041eb8 ("gdb: add
string_file::release method").

Fix this by removing std::move.

Build on x86_64-linux with clang 13.0.0.

gdb/tui/tui-disasm.c

index 445503a5af9819ddd1c41fd45d2e8a83e012d805..70f7429d32b44cec0779f0913928554b95dccbbf 100644 (file)
@@ -135,7 +135,7 @@ tui_disassemble (struct gdbarch *gdbarch,
       /* And capture the address the instruction is at.  */
       tal.addr = orig_pc;
       print_address (gdbarch, orig_pc, &gdb_dis_out);
-      tal.addr_string = std::move (gdb_dis_out.release ());
+      tal.addr_string = gdb_dis_out.release ();
 
       if (addr_size != nullptr)
        {