From patchwork Mon Feb 12 21:24:10 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dodji Seketeli X-Patchwork-Id: 85630 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C68CB3858402 for ; Mon, 12 Feb 2024 21:24:26 +0000 (GMT) X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id 40FE53858C52 for ; Mon, 12 Feb 2024 21:24:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 40FE53858C52 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 40FE53858C52 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1707773060; cv=none; b=Dsu9hEw01btb2MNZ8EpNbM0fGhNa6tAR6JkIpqTW9lOezCdkFdMdUNMPmm7vr02fQKqAaCHEnMAQSZxkeHK4DhK49SOV/qmJCNeoO8Nzj1+GXG+OzCwXSfyH5layruq/KUKl4mRo4urFQBOYvSdq4AHGWs34YZWcfOG1yiy0Ufg= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1707773060; c=relaxed/simple; bh=qXoFGqkPkw0itNcdZEuuntRtpMI35LxiVTBkjLwm25c=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=fVeg6DpykasHfNhOWcY84Qm8M1p+mYf8PXSJgjLxXv2qCGWUUwIe867lLuQkGQWVohbN1Z3P/M7ba6PFHCz65Sjte23zthbb/fTkOP0m8RiQh6YJ17tr7CW1OcI/pSgppmdK1z54b/GPKn7RhTM8UZm6wPqjvQtyjWuXTjeQ538= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1707773055; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type; bh=RVwIICMi5PruKQkV/dsBL1lg9SgvKxqJbuAExPoG3QA=; b=giY2FYZeQtW0Zw1uxIlSkf3kWoXnIJUtFsuRxoC4GgNbXm94M13l47WMuc0jQoI8Z2Z+bf DWruGiSJQb278gKo6oQVLFh/Q3XsqPRZ6OYBzTvmah0ksJfVViXn64t+wOOHc5pghcus6I Ev905wof2DydaBw0HGZMmPQZL8zY7d4= Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-313-e6WBayKTPB-13dPGG3q0jg-1; Mon, 12 Feb 2024 16:24:14 -0500 X-MC-Unique: e6WBayKTPB-13dPGG3q0jg-1 Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-7871806122dso21189985a.2 for ; Mon, 12 Feb 2024 13:24:14 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707773053; x=1708377853; h=mime-version:user-agent:message-id:date:organization:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=RVwIICMi5PruKQkV/dsBL1lg9SgvKxqJbuAExPoG3QA=; b=nhI2reXelO+oGi2lSS+PcqUPbqJ1rJ2j7Y6wlnXzIVz8ZMduwHIuNG9byxIeEj5PXT oxYdHM7edsXJ3NQjo6gwlVRznXO6RbqIuJSbaKR/vqORc4Cs+6mQ3QjUyUk5/Oi5RCnu 5QCYM814KgkQKjGQ0bQOMUjU70zdUkDzrDur4u7Yx4JyfaT0yd/TYwsTk5zSE54wTV07 Ooi1Cqu4I0fcLK6HA70qiRtGBurgBppiNivOoz6BAUg8xHHjsVkPBHEwYZY2kTpEzIn7 Pe/VwmxK1khX2bIXHXHkpmCAbOgIoUUBd368c0HbX9ab8g7eDR+4k5mjsfzolA8nqCPD 8CMA== X-Gm-Message-State: AOJu0YwzyoEE503cDdIWGYScP/YUgiE/JvKwa3WVGnI0M6oUSF8wSAUq /YaC6zVHj8mG46kWaI1h+skPX5DtGr8ay1oMWKcRtHQgU08nbRDB+slT/iDVYDipTDO12JkhjSD zsUCGanOGS+uRoPJu05Zw+WX3oDr/K3CEh82rnYTafauIeL/TGCmeUXc7LONMIGRqKw== X-Received: by 2002:a05:620a:191c:b0:785:d4ad:f3cc with SMTP id bj28-20020a05620a191c00b00785d4adf3ccmr5286915qkb.14.1707773053355; Mon, 12 Feb 2024 13:24:13 -0800 (PST) X-Google-Smtp-Source: AGHT+IE31l/+hqP56lAy9GHX+ugBz+KJbnyIPvNKXVvAG3ph81DjXAb7zlvzN1B3vDD9nE0JvIRuwQ== X-Received: by 2002:a05:620a:191c:b0:785:d4ad:f3cc with SMTP id bj28-20020a05620a191c00b00785d4adf3ccmr5286903qkb.14.1707773053008; Mon, 12 Feb 2024 13:24:13 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCXTgA1u6pOZ0CLGcdA+B6in6t0Ze1su0cH7sqmFDPa9puV5fwYMPEx2m+wC60UMfKTt8XUqHLcS04ot0ovx/71q Received: from localhost (88-120-130-27.subs.proxad.net. [88.120.130.27]) by smtp.gmail.com with ESMTPSA id po3-20020a05620a384300b0078366823711sm2385090qkn.119.2024.02.12.13.24.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Feb 2024 13:24:12 -0800 (PST) Received: by localhost (Postfix, from userid 1000) id 3523AB4FCA; Mon, 12 Feb 2024 22:24:10 +0100 (CET) From: Dodji Seketeli To: libabigail@sourceware.org Subject: [PATCH, applying to mainline] ir: Avoid duplicates when reading member functions Organization: Red Hat / France X-Operating-System: CentOS Stream release 9 X-URL: http://www.redhat.com Date: Mon, 12 Feb 2024 22:24:10 +0100 Message-ID: <87cyt1z891.fsf@redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE 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: libabigail@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libabigail-bounces+patchwork=sourceware.org@sourceware.org Hello, As the same class can be read several times, let's avoid having duplicates of a given virtual member function. * src/abg-ir.cc (fixup_virtual_member_function): Check if a virtual member function with the same linkage name exists already before adding it in. * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Adjust. * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: Adjust. * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Adjust. * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust. * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Adjust. * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Adjust. * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Adjust. * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust. Signed-off-by: Dodji Seketeli Applying to the master branch. --- src/abg-ir.cc | 6 +- ...st18-pr19037-libvtkRenderingLIC-6.1.so.abi | 11 -- ...st20-pr19025-libvtkParallelCore-6.1.so.abi | 22 --- .../test-read-dwarf/PR22122-libftdc.so.abi | 174 ------------------ .../test-read-dwarf/test10-pr18818-gcc.so.abi | 63 ------- ...st18-pr19037-libvtkRenderingLIC-6.1.so.abi | 7 - ...st20-pr19025-libvtkParallelCore-6.1.so.abi | 14 -- .../test22-pr19097-libstdc++.so.6.0.17.so.abi | 28 --- .../test9-pr18818-clang.so.abi | 12 -- 9 files changed, 4 insertions(+), 333 deletions(-) diff --git a/src/abg-ir.cc b/src/abg-ir.cc index 42fe022e..58e19c5b 100644 --- a/src/abg-ir.cc +++ b/src/abg-ir.cc @@ -25128,7 +25128,8 @@ fixup_virtual_member_function(method_decl_sptr method) for (m = klass->priv_->virtual_mem_fns_.begin(); m != klass->priv_->virtual_mem_fns_.end(); ++m) - if (m->get() == method.get()) + if (m->get() == method.get() + || (*m)->get_linkage_name() == method->get_linkage_name()) break; if (m == klass->priv_->virtual_mem_fns_.end()) klass->priv_->virtual_mem_fns_.push_back(method); @@ -25150,7 +25151,8 @@ fixup_virtual_member_function(method_decl_sptr method) else { for (m = i->second.begin() ; m != i->second.end(); ++m) - if (m->get() == method.get()) + if (m->get() == method.get() + || (*m)->get_linkage_name() == method->get_linkage_name()) break; if (m == i->second.end()) i->second.push_back(method); diff --git a/tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi b/tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi index 2dcbb963..6c207b7e 100644 --- a/tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi +++ b/tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi @@ -13806,17 +13806,6 @@ - - - - - - - - - - - diff --git a/tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi b/tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi index b8a708cd..cc452f78 100644 --- a/tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi +++ b/tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi @@ -883,28 +883,6 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/data/test-read-dwarf/PR22122-libftdc.so.abi b/tests/data/test-read-dwarf/PR22122-libftdc.so.abi index 2ba39ed1..9294f23a 100644 --- a/tests/data/test-read-dwarf/PR22122-libftdc.so.abi +++ b/tests/data/test-read-dwarf/PR22122-libftdc.so.abi @@ -444,42 +444,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -488,42 +452,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -550,42 +478,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -594,42 +486,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1299,36 +1155,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi b/tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi index 40a55874..20cce039 100644 --- a/tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi +++ b/tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi @@ -2405,41 +2405,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -6609,34 +6574,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi b/tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi index 69237e27..56f2f137 100644 --- a/tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi +++ b/tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi @@ -8326,13 +8326,6 @@ - - - - - - - diff --git a/tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi b/tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi index e59603d2..980ae615 100644 --- a/tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi +++ b/tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi @@ -467,20 +467,6 @@ - - - - - - - - - - - - - - diff --git a/tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi b/tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi index 51ff158d..20f9a6b7 100644 --- a/tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi +++ b/tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi @@ -9903,13 +9903,6 @@ - - - - - - - @@ -28807,13 +28800,6 @@ - - - - - - - @@ -28822,13 +28808,6 @@ - - - - - - - @@ -28869,13 +28848,6 @@ - - - - - - - diff --git a/tests/data/test-read-dwarf/test9-pr18818-clang.so.abi b/tests/data/test-read-dwarf/test9-pr18818-clang.so.abi index b06ade20..94d766c5 100644 --- a/tests/data/test-read-dwarf/test9-pr18818-clang.so.abi +++ b/tests/data/test-read-dwarf/test9-pr18818-clang.so.abi @@ -4803,18 +4803,6 @@ - - - - - - - - - - - -