From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from alt32.smtp-out.videotron.ca (alt32.smtp-out.videotron.ca [24.53.0.21]) by sourceware.org (Postfix) with ESMTPS id 748E93858027 for ; Tue, 18 Oct 2022 14:17:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 748E93858027 Received: from localhost.localdomain ([74.56.249.162]) by Videotron with ESMTP id knPSoUIItLykPknPSohknt; Tue, 18 Oct 2022 10:17:37 -0400 X-Authority-Analysis: v=2.4 cv=Ys1s+6UX c=1 sm=1 tr=0 ts=634eb581 a=vTEE2W6FS0436lLiwMOoNg==:117 a=vTEE2W6FS0436lLiwMOoNg==:17 a=0Lei0MbLZxCwy9XTfUEA:9 From: Simon Marchi To: gdb-patches@sourceware.org Cc: Simon Marchi Subject: [PATCH] gdb: check for groups with duplicate names in reggroups:add Date: Tue, 18 Oct 2022 10:17:33 -0400 Message-Id: <20221018141733.29298-1-simon.marchi@efficios.com> X-Mailer: git-send-email 2.38.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CMAE-Envelope: MS4xfDDgUVbPLbfVBQZrXpLTZfuhl+L+Xq1io3XMCb+zedAANl7Jjmar1FjIEvtIJVhIHMyxD6BpUgww7ZqYgR9pa14vDNINbKTeFHENr35JH8TyZq4oQWfs dsrSAs0NZU/5u+cx8srD7547m9Bk68BIIEAf5mA9YtZgR3wEAOHv01SoCsZK4h3637fsVuSt/ieDBC7bPy30nKgmf8tgB0Zcv2IdBnxYyaXCoVWlXu3cn9wU X6yPIYhwmVcnUWR2g3P9cA== X-Spam-Status: No, score=-1174.6 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_NONE, KAM_DMARC_STATUS, RCVD_IN_DNSWL_LOW, SPF_HELO_PASS, SPF_SOFTFAIL, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Oct 2022 14:17:40 -0000 In the downstream ROCm GDB port, we would create multiple register groups with duplicate names. While it did not really hurt, it certainly wasn't the intent. And I don't think it ever makes sense to do so. To catch these, change the assert in reggroups::add to check for duplicate names. It's no longer necessary to check for duplicate reggroup pointers, because adding the same group twice would be caught by the duplicate name check. Change-Id: Id216a58acf91f1b314d3cba2d02de73656f8851d --- gdb/reggroups.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gdb/reggroups.c b/gdb/reggroups.c index 8e4af303c545..a012bf085265 100644 --- a/gdb/reggroups.c +++ b/gdb/reggroups.c @@ -71,8 +71,13 @@ struct reggroups void add (const reggroup *group) { gdb_assert (group != nullptr); - gdb_assert (std::find (m_groups.begin(), m_groups.end(), group) - == m_groups.end()); + + auto find_by_name = [group] (const reggroup *g) + { + return streq (group->name (), g->name ()); + }; + gdb_assert (std::find_if (m_groups.begin (), m_groups.end (), find_by_name) + == m_groups.end ()); m_groups.push_back (group); } -- 2.38.0