[gdb/build] Use move capture in gdb_demangle
authorTom de Vries <tdevries@suse.de>
Tue, 8 Aug 2023 22:58:29 +0000 (00:58 +0200)
committerTom de Vries <tdevries@suse.de>
Tue, 8 Aug 2023 22:58:29 +0000 (00:58 +0200)
Use move capture in gdb_demangle when compiling for c++14 or higher, to save a
std::string copy.

Tested on x86_64-linux.

Reported-By: Tom Tromey <tom@tromey.com>
Approved-By: Tom Tromey <tom@tromey.com>
gdb/cp-support.c

index 2fb9d9ef0b2e90b6fba247e5687f8fa6d0e4eab7..0300727434d93471ccc389b039331178eab8e307 100644 (file)
@@ -1656,7 +1656,13 @@ gdb_demangle (const char *name, int options)
             we might be in a background thread.  Instead, arrange for
             the reporting to happen on the main thread.  */
          std::string copy = name;
-         run_on_main_thread ([=] ()
+         run_on_main_thread ([
+#if __cplusplus >= 201402L
+                              =, copy = std::move (copy)
+#else
+                              =
+#endif
+                              ] ()
            {
              report_failed_demangle (copy.c_str (), core_dump_allowed,
                                      crash_signal);