From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 6DD923858D28 for ; Mon, 19 Dec 2022 17:07:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 6DD923858D28 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671469639; 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=Qo2gjagd25CRi2voL0I7zt7k+4IbjXxucX3hz3Amcz8=; b=Q2FQg9mijSRwpfK6TMflhgTKBMVUZabg57Wvt/NKDLli1MtVPyuqxhpEtGE6pME+4CV9// yjDJJ3oImiTH4QH2WbsFn4e5H+J6sNJBqHy68EwBilmvirT5PTqxo2jQmwsTOtOoMKZ5hF m1zZJlIdkiP3dMRo54j2H6xC3jYFNUQ= Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-153-S6LIhKv0O6-tcULIBDh0Rg-1; Mon, 19 Dec 2022 12:07:17 -0500 X-MC-Unique: S6LIhKv0O6-tcULIBDh0Rg-1 Received: by mail-qk1-f197.google.com with SMTP id bl3-20020a05620a1a8300b0070240ff36a0so3720130qkb.19 for ; Mon, 19 Dec 2022 09:07:17 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=Qo2gjagd25CRi2voL0I7zt7k+4IbjXxucX3hz3Amcz8=; b=LMlqkOVqw1GtNjzFiLLP/PdqKEs458ks/3iiOQznWg7eQ8EhpHqj2WYu7uXSZCj5iE VTFcUZfFZL8FIeO3baLdafDCvwlsjJ8mbcLX0JwLduFizXhsePOXjuGgLSfiah/jEwSf E0IXp0MqMoUw2KKpxug4yGnS6dvuPsjOYEWZZaa7YhyTi1cKyoMUNSzMndK89+ScBpa+ LxuHDpqcqGSsigwCF0OkHndwNaknGSDf1Ow5rxSL8k3rhFIf3VKxSrFVWGrpBYZhnuea ql/Vi/KXiwCPQFMtD/xBQmLh2Z5HeMBZVmWH4fXEacoqIfQHiSy8eR9l1Oqf6odGmYAO wCQw== X-Gm-Message-State: ANoB5pmRu8ot4Zrg4ISzVSTAFqO/Wt4z1IoOkwSACR34dOU8ZNSVrCEI IDbjysll2TeU5vnta+GlcXakeMOeNJ7MpiXLE7BKjS/b2G0rWESEgsOXSEYGDs3LDUFfjz5nmbM JjWCzbuZ3gTs+J6RS7rT8pirT5ZFzLbSbrHW0udSHdSsCgH6EnIRGhlFfAphMg3ba+7qD X-Received: by 2002:ac8:5c83:0:b0:3a7:242:501 with SMTP id r3-20020ac85c83000000b003a702420501mr83214540qta.46.1671469637137; Mon, 19 Dec 2022 09:07:17 -0800 (PST) X-Google-Smtp-Source: AA0mqf6EiZjX3ia2NrDl75NITpUPac+Edn84wTDSIVR2HjpL/uxiztPgdpmsgKpAZPAB+KccgRATtA== X-Received: by 2002:ac8:5c83:0:b0:3a7:242:501 with SMTP id r3-20020ac85c83000000b003a702420501mr83214502qta.46.1671469636779; Mon, 19 Dec 2022 09:07:16 -0800 (PST) Received: from localhost ([88.120.130.27]) by smtp.gmail.com with ESMTPSA id ci27-20020a05622a261b00b003a580cd979asm6333218qtb.58.2022.12.19.09.07.16 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Dec 2022 09:07:16 -0800 (PST) Received: by localhost (Postfix, from userid 1000) id C5DD7B5649; Mon, 19 Dec 2022 18:07:13 +0100 (CET) From: Dodji Seketeli To: libabigail@sourceware.org Subject: [PATCH 0/3, applied] Bug 29857 - Fix comparing binary with decl-only unions & cycles Organization: Red Hat / France X-Operating-System: CentOS Stream release 9 X-URL: http://www.redhat.com Date: Mon, 19 Dec 2022 18:07:13 +0100 Message-ID: <87wn6ne30e.fsf@redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Spam-Status: No, score=-5.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,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 List-Id: Hello, Fixing the problem reported at https://sourceware.org/bugzilla/show_bug.cgi?id=29857 involves addressing several issues. The first patch of this series addresses the fact that in some cases, when comparing decl-only types, the comparison engine can pop comparison operands that haven't been pushed to the comparison stack, leading to some assert violation. Then, I realized that several occurences of a given type (due to DWARF-related type duplication) are considered different because of comparing decl-only unions against their definition; this is because decl-only unions are not yet resolved to their definition, unlike what is done already for classes and enums. The second patch adds support for resolving decl-only unions to their definition. This drastically reduces the amount of spurious type changes that were causing lots of issues down the road. Fixing that second issue uncovered a third one which is basically related to undetected cycles in the type graph, while comparing types for canonicalization purposes. Those undected cycles are leading to infinite loops during structural comparison of types. This is fixed in the third patch. Together, these three patches should fix bugs 29857 and 29901. Dodji Seketeli (3): Bug 29857 - Don't pop comparison operands that haven't been pushed Bug 29857 - dwarf-reader: Resolve decl-only unions Bug 29857 - Better detect comparison cycles in type graph include/abg-fwd.h | 9 + src/abg-dwarf-reader.cc | 60 +- src/abg-ir-priv.h | 94 +- src/abg-ir.cc | 59 +- ...19-pr19023-libtcmalloc_and_profiler.so.abi | 9003 +++++++++-------- ...19-pr19023-libtcmalloc_and_profiler.so.abi | 8969 ++++++++-------- 6 files changed, 9100 insertions(+), 9094 deletions(-) -- 2.31.1 -- Dodji