From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id saUAMfzw4Wq38D0AWB0awg (envelope-from ) for ; Wed, 28 Oct 2026 08:56:28 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=fkWWteUi; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=5UR26dlB; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=F7ysUBdx; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=wIZyY2A7; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id C3A1F378002; Wed, 28 Oct 2026 08:56:28 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 11D16378002 for ; Wed, 28 Oct 2026 08:56:28 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 274B74BA23D7 for ; Wed, 28 Oct 2026 12:56:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 274B74BA23D7 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=fkWWteUi; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=5UR26dlB; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=F7ysUBdx; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=wIZyY2A7 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by sourceware.org (Postfix) with ESMTPS id 9D3B74BA23D0 for ; Wed, 28 Oct 2026 12:54:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9D3B74BA23D0 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 9D3B74BA23D0 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1793192088; cv=none; b=bjZrcVBX5v7f+LTJGTa2z/IdxAwC7FhEPsUcPyAMXG9MECOdQEu18jpohnUA39SYpGqONsvLupwYOI8KAn/jGfnV/Vy3LSsWkX1+P8vJjQR2AvESytL9XQqdcwIPrpfTzkB/Zz37rttY8ciPqXtZ+beGKMdUYatM8yuxRVJLmV4= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1793192088; c=relaxed/simple; bh=oNs16OVV8DJaZVKJ5fR3KXH2uqbBdarizLDZ/3e+304=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-ID:MIME-Version; b=YtYv1CHmjgaJZvFJpoPOLM38uOaa/csBxhyob0kpczwEbyDBmS8LFhJx03Tikqtm+RkikTB7vFmZiZ1FKxSDk3ATfs9vXDBK46ZU5JC60PpEaRliyiyKL2+OyCVykL/JHvhTiSqZPoZoSwlfPGhjbR/XQ/yquY6//f+y5CRbJwA= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=fkWWteUi; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=5UR26dlB; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=F7ysUBdx; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=wIZyY2A7 DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9D3B74BA23D0 Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id ADFA21F835 for ; Wed, 28 Oct 2026 12:54:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1793192087; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=itxPC7CS1kJLr8eKdQ5931FzggudkNJhlsyIVBZaZ3c=; b=fkWWteUiE+OeAO/VeXy2xeVd2BDuQxJDprgCyZEYBhQ8Sv4/45998I7J8rMnT8VY7xDqgm D748XJny4PtAbA1coMfkvH71Otr6yfSicBggEQqGpNeFGJ4Etlpx+UJBl9v1YlKHhJFDVe ilVxsutq/EsRVoKtWaLGK6ElcQ11ikQ= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1793192087; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=itxPC7CS1kJLr8eKdQ5931FzggudkNJhlsyIVBZaZ3c=; b=5UR26dlBWpNxXJGzsUYhgeQWs8FHNJKGZtEiJrLX5xKaH3nlOe2ZjjSpumJATOcaP2rNLX IxLF6vZ+Bh8A9zCA== Authentication-Results: smtp-out2.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1793192086; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=itxPC7CS1kJLr8eKdQ5931FzggudkNJhlsyIVBZaZ3c=; b=F7ysUBdxGYlR+jtQauXF5KhxFyDk+VO7s5qV4ZBvESbePlTk3Tt+3wBeiClHH7a4g/78b7 rJGFnf3u02cxJFrIzrFfznerb8pYv/inoonP1Ci32R8Y43crC6YIhxbKhRqDGF58SwHh3z cpWDUQhPEQIIr+JKYouT4UNCAldm5dI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1793192086; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=itxPC7CS1kJLr8eKdQ5931FzggudkNJhlsyIVBZaZ3c=; b=wIZyY2A70Oa3QKt5MkwMRYrFvQgdfdndzDo/XXHNzRKcRnx7aR1ZdeWc1Le3rDnzHZOqvL BSCRYtF9FungTUAQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 84ECF1342D for ; Wed, 28 Oct 2026 12:54:46 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id k2fnD5bw4WpcFgAAD6G6ig:T2 (envelope-from ) for ; Wed, 28 Oct 2026 12:54:46 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 1/2] [gdb/build] Fix Wstringop-overflow in selftests::vex2_to_vex3 Date: Wed, 28 Oct 2026 13:54:44 +0100 Message-ID: <20261028125445.1745119-2-tdevries@suse.de> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20261028125445.1745119-1-tdevries@suse.de> References: <20261028125445.1745119-1-tdevries@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spamd-Result: default: False [-12.30 / 50.00]; SUSE_INTERNAL_BYPASS(-9.00)[]; BAYES_HAM(-3.00)[100.00%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_ALL(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_NONE(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,gnu.org:url] X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org When building gdb with -O3 on x86_64-linux, I run into: ... inlined from ‘void std::vector<_Tp, _Alloc>::resize(size_type) [with _Tp = unsigned char; _Alloc = gdb::default_init_allocator >]’ at /usr/include/c++/15/bits/stl_vector.h:1146:21, inlined from ‘void selftests::vex2_to_vex3(gdb::byte_vector&, gdb::byte_vector&)’ at /data/vries/gdb/leap-16-0/build/../../src/gdb/amd64-tdep.c:3896:15: /usr/include/c++/15/bits/new_allocator.h:191:11: warning: writing 8 bytes into a region of size between 1 and 5 [-Wstringop-overflow=] 191 | { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ... The warning complains about this resize: ... vex3.resize (3); vex3[0] = 0xc4; vex3[1] = (r << 7) | (x << 6) | (b << 5) | m; vex3[2] = (vex2[1] & ~0x80) | (w << 7); ... This is a false positive [1]. Get rid of the warning by using std::vector instead. The only difference is default initialization, and for small vectors that doesn't matter. [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106093 --- gdb/amd64-tdep.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c index 18b8f2a4c0b..27491cb995c 100644 --- a/gdb/amd64-tdep.c +++ b/gdb/amd64-tdep.c @@ -3877,12 +3877,15 @@ amd64_target_description (uint64_t xstate_bv, bool segments) #if GDB_SELF_TEST +/* We're using std::vector instead of gdb::byte_vector here to work + around Wstringop-overflow false positives (PR gcc/106093). */ + namespace selftests { /* Recode a vex2 instruction into a vex3 instruction. */ static void -vex2_to_vex3 (gdb::byte_vector &vex2, gdb::byte_vector &vex3) +vex2_to_vex3 (std::vector &vex2, std::vector &vex3) { gdb_assert (vex2.size () >= 2); gdb_assert (vex2[0] == 0xc5); @@ -3908,13 +3911,13 @@ static void test_vex2_to_vex3 (void) { /* INSN: vzeroall, vex2 prefix. */ - gdb::byte_vector vex2 = { 0xc5, 0xfc, 0x77 }; + std::vector vex2 = { 0xc5, 0xfc, 0x77 }; - gdb::byte_vector vex3; + std::vector vex3; vex2_to_vex3 (vex2, vex3); /* INSN: vzeroall, vex3 prefix. */ - gdb::byte_vector vex3_ref = { 0xc4, 0xe1, 0x7c, 0x77 }; + std::vector vex3_ref = { 0xc4, 0xe1, 0x7c, 0x77 }; SELF_CHECK (vex3 == vex3_ref); } @@ -3924,7 +3927,7 @@ static void test_amd64_get_insn_details (void) { struct amd64_insn details; - gdb::byte_vector insn, tmp; + std::vector insn, tmp; /* INSN: add %eax,(%rcx). */ insn = { 0x01, 0x01 }; @@ -3961,11 +3964,12 @@ test_amd64_get_insn_details (void) SELF_CHECK (rip_relative_offset (&details) == 3); /* INSN: lea 0x1e(%ecx),%rdi, rex prefix. */ - gdb::byte_vector updated_insn = { 0x48, 0x8d, 0xb9, 0x1e, 0x00, 0x00, 0x00 }; + std::vector updated_insn + = { 0x48, 0x8d, 0xb9, 0x1e, 0x00, 0x00, 0x00 }; fixup_riprel (details, insn.data (), ECX_REG_NUM); SELF_CHECK (insn == updated_insn); - gdb::byte_vector vex2, vex3; + std::vector vex2, vex3; /* INSN: vzeroall, vex2 prefix. */ vex2 = { 0xc5, 0xfc, 0x77 }; @@ -4008,7 +4012,7 @@ test_amd64_get_insn_details (void) SELF_CHECK (details.modrm_offset == 3); /* INSN: vmovdqu 0x9(%rcx),%ymm3, vex2 prefix. */ - gdb::byte_vector updated_vex2 + std::vector updated_vex2 = { 0xc5, 0xfe, 0x6f, 0x99, 0x09, 0x00, 0x00, 0x00 }; tmp = vex2; fixup_riprel (details, tmp.data (), ECX_REG_NUM); @@ -4023,7 +4027,7 @@ test_amd64_get_insn_details (void) SELF_CHECK (details.modrm_offset == 4); /* INSN: vmovdqu 0x9(%rcx),%ymm3, vex3 prefix. */ - gdb::byte_vector updated_vex3; + std::vector updated_vex3; vex2_to_vex3 (updated_vex2, updated_vex3); tmp = vex3; fixup_riprel (details, tmp.data (), ECX_REG_NUM); -- 2.51.0