From: Tom de Vries Date: Mon, 21 Oct 2024 06:04:07 +0000 (+0200) Subject: [gdb/build, c++20] Fix more deprecated implicit capture of this X-Git-Tag: gdb-16-branchpoint~625 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ced885161b6e1dee89acc4bd3b68ba7a27815645;p=thirdparty%2Fbinutils-gdb.git [gdb/build, c++20] Fix more deprecated implicit capture of this When building gdb with -std=c++20 I run into: ... gdb/dwarf2/cooked-index.c: In lambda function: gdb/dwarf2/cooked-index.c:471:47: error: implicit capture of ‘this’ via \ ‘[=]’ is deprecated in C++20 [-Werror=deprecated] 471 | gdb::thread_pool::g_thread_pool->post_task ([=] () | ^ gdb/dwarf2/cooked-index.c:471:47: note: add explicit ‘this’ or ‘*this’ capture ... Fix this and two more spots by removing the capture default, and explicitly listing all captures. Tested on x86_64-linux. --- diff --git a/gdb/dwarf2/cooked-index.c b/gdb/dwarf2/cooked-index.c index 46b1c2d1b12..d776f2f9bca 100644 --- a/gdb/dwarf2/cooked-index.c +++ b/gdb/dwarf2/cooked-index.c @@ -468,7 +468,7 @@ cooked_index_shard::find (const std::string &name, bool completing) const void cooked_index_worker::start () { - gdb::thread_pool::g_thread_pool->post_task ([=] () + gdb::thread_pool::g_thread_pool->post_task ([this] () { try { @@ -653,7 +653,7 @@ cooked_index::set_contents (vec_type &&vec, deferred_warnings *warn, finalization. However, that would take a slot in the global thread pool, and if enough such tasks were submitted at once, it would cause a livelock. */ - gdb::task_group finalizers ([=] () + gdb::task_group finalizers ([this, warn] () { m_state->set (cooked_state::FINALIZED); m_state->write_to_cache (index_for_writing (), warn); diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index cc49c4779c4..886d14f4896 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -5033,7 +5033,7 @@ cooked_index_debug_info::do_reading () } gdb_assert (iter != last); - workers.add_task ([=] () + workers.add_task ([this, task_count, iter, last] () { process_cus (task_count, iter, last); });