From cff79e9708be8236211a33af46a215be9b5a91d5 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Wed, 23 Jul 2025 14:41:42 -0400 Subject: [PATCH] gdbserver: use reference in range for loop MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The armhf buildbot fails to build GDB, with: ../../binutils-gdb/gdbserver/server.cc: In function ‘void handle_general_set(char*)’: ../../binutils-gdb/gdbserver/server.cc:1021:23: error: loop variable ‘’ creates a copy from type ‘const std::pair >’ [-Werror=range-loop-construct] 1021 | for (const auto [thread, options] : set_options) | ^~~~~~~~~~~~~~~~~ ../../binutils-gdb/gdbserver/server.cc:1021:23: note: use reference type to prevent copying 1021 | for (const auto [thread, options] : set_options) | ^~~~~~~~~~~~~~~~~ | & I did not use a reference on purpose, because the pair is very small. I don't see the problem when building on amd64, I presume it is because the pair is considered too big to copy on a 32-bit architecture, but not on a 64-bit architecture. In any case, fix it by adding a reference. Change-Id: I8e95235d6e53f032361950cf6e0c7d46b082f951 --- gdbserver/server.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gdbserver/server.cc b/gdbserver/server.cc index 4875df7c100..ce84c7f75d9 100644 --- a/gdbserver/server.cc +++ b/gdbserver/server.cc @@ -1018,7 +1018,7 @@ handle_general_set (char *own_buf) }); } - for (const auto [thread, options] : set_options) + for (const auto &[thread, options] : set_options) if (thread->thread_options != options) { threads_debug_printf ("[options for %s are now %s]\n", -- 2.47.2