[PATCH] gdb/build: Fix Wpessimizing-move in clang build
Simon Marchi
simon.marchi@polymtl.ca
Fri Jan 28 14:58:59 GMT 2022
On 2022-01-28 09:33, Enze Li wrote:
> On Fri, 2022-01-28 at 09:25 -0500, Simon Marchi wrote:
>>
>>
>> On 2022-01-28 08:41, Enze Li via Gdb-patches wrote:
>>> 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 | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/gdb/tui/tui-disasm.c b/gdb/tui/tui-disasm.c
>>> index 445503a5af9..70f7429d32b 100644
>>> --- a/gdb/tui/tui-disasm.c
>>> +++ b/gdb/tui/tui-disasm.c
>>> @@ -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)
>>> {
>>
>> Oh, thanks! In fact, this is the spot that did prompt me to add this
>> release method, so it's a silly oversight on my part to not remove
>> the
>> std::move. Thanks patch is ok. Do you have push access?
>
> Yes. Should I push it now?
Yes, please go ahead.
Simon
More information about the Gdb-patches
mailing list