[gdb/build, c++20] Fix deprecated implicit capture of this
authorTom de Vries <tdevries@suse.de>
Thu, 17 Aug 2023 08:41:34 +0000 (10:41 +0200)
committerTom de Vries <tdevries@suse.de>
Thu, 17 Aug 2023 08:41:34 +0000 (10:41 +0200)
When building gdb with -std=c++20 I run into:
...
gdb/ada-lang.c:10713:16: error: implicit capture of ‘this’ via ‘[=]’ is \
  deprecated in C++20 [-Werror=deprecated]
10713 |   auto do_op = [=] (LONGEST x, LONGEST y)
      |                ^
gdb/ada-lang.c:10713:16: note: add explicit ‘this’ or ‘*this’ capture
...

Fix this by using "[this]".

Likewise in two more spots.

Tested on x86_64-linux.

gdb/ada-lang.c
gdb/ravenscar-thread.c
gdb/remote.c

index 2f934b1e79ab5f95536cb8a7494699a74755e4da..575568cffb5576f2d3081e49de0da734a92d474e 100644 (file)
@@ -10730,7 +10730,7 @@ ada_binop_addsub_operation::evaluate (struct type *expect_type,
   value *arg1 = std::get<1> (m_storage)->evaluate_with_coercion (exp, noside);
   value *arg2 = std::get<2> (m_storage)->evaluate_with_coercion (exp, noside);
 
-  auto do_op = [=] (LONGEST x, LONGEST y)
+  auto do_op = [this] (LONGEST x, LONGEST y)
     {
       if (std::get<0> (m_storage) == BINOP_ADD)
        return x + y;
index 520161338895bc5f9a1b7f27cdd5c9a013f1ecf4..68d336bee991495f68d74d7c84bd42148a006d39 100644 (file)
@@ -473,7 +473,7 @@ ravenscar_thread_target::update_thread_list ()
      (m_base_ptid) and the running thread, that may not have been included
      to system.tasking.debug's list yet.  */
 
-  iterate_over_live_ada_tasks ([=] (struct ada_task_info *task)
+  iterate_over_live_ada_tasks ([this] (struct ada_task_info *task)
                               {
                                 this->add_thread (task);
                               });
index e01da795ec88c384cb9f13e8b0fbd7aa6ada1165..7abe08439b529c2d17e0e1b9275119a2b5078a5b 100644 (file)
@@ -11609,7 +11609,7 @@ remote_target::search_memory (CORE_ADDR start_addr, ULONGEST search_space_len,
   int found;
   ULONGEST found_addr;
 
-  auto read_memory = [=] (CORE_ADDR addr, gdb_byte *result, size_t len)
+  auto read_memory = [this] (CORE_ADDR addr, gdb_byte *result, size_t len)
     {
       return (target_read (this, TARGET_OBJECT_MEMORY, NULL, result, addr, len)
              == len);