From patchwork Tue Mar 15 14:24:13 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Giuliano Procida X-Patchwork-Id: 51979 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 8546C385803A for ; Tue, 15 Mar 2022 14:24:31 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8546C385803A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1647354271; bh=SzJl5PqWOFnzTC3eRQ7JjzvAzcqlwl9n3GMBvlcMY9U=; h=Date:Subject:To:List-Id:List-Unsubscribe:List-Archive:List-Help: List-Subscribe:From:Reply-To:Cc:From; b=lCHYRDsnOIEoCxPia+zgKCMDKnQCKg0llRkIyuIsiJRCbZNm4eg2PcI9SCrjgkNT1 gVygxqeMIRhK9DD/fDUIR4+CALyuHup1VQFbSBCGyzlm7H8FZxYnfSrVkBS7W5M5oN I4LzoBAT02iZV7dv8jepYSz8d2QGMitCjlHov05o= X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from mail-ed1-x549.google.com (mail-ed1-x549.google.com [IPv6:2a00:1450:4864:20::549]) by sourceware.org (Postfix) with ESMTPS id EC3F33858D20 for ; Tue, 15 Mar 2022 14:24:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org EC3F33858D20 Received: by mail-ed1-x549.google.com with SMTP id p29-20020a50cd9d000000b00418d85b28eeso88523edi.11 for ; Tue, 15 Mar 2022 07:24:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc :content-transfer-encoding; bh=SzJl5PqWOFnzTC3eRQ7JjzvAzcqlwl9n3GMBvlcMY9U=; b=1C+zY+tyblujkHsxFlZOdc2wE/EyeeNfpWcKARM5EYuIsXEPpBWMktc+Gf9f2kGDya /XNZt5PiBWfdcMhaW47WfeCMXZyotLwfWAQh2/z3lm39apGtERD8PGk2QXCRdYZkMMkH TyM/3omXHrd6cI6m90FzH2n5FwWHvVe1JT093IWLFplwua5viYRjwbwnTmpbyXScNRg+ cqvbsdVhoGBGxWgYxSZyOr7eKw7+bhdQ0V/KL1Gv0srt9hz8IoGrJTMy6b+gcI4gZ7YW csOQdA4vAnmUItKzOGz5Ao+bU0U4CAUE6QQKAkxfcL+qwix3CNEnCfaR3nx2FYs4GAU+ uUrQ== X-Gm-Message-State: AOAM532w7FmzoWpqFPXRxv0kTDa0ZYUfOQ4m8WcpyuCyDDj3NeCHaujx sVKK8J1h1UFN5b7sV+w756bZoz18aulETwFBVFGBYCMYLsKv5ofa1MI09kl9OsjwUp9jqKCCQ7V a1bARr8QQWWEfRfFj1G+51tmjFHA9DsZdeBOckoZjhCdR5dwLF7dRPYhYEtnPAWm5zdsHDIQ= X-Google-Smtp-Source: ABdhPJyn7DJQfh7bNYzR4BiAX5r9L30IFWYZXzfj09NQlZ0zSXbcxDYVS1aIZJ3+WEBE9kUvIRnFE18e4Z6dKQ== X-Received: from tef.lon.corp.google.com ([2a00:79e0:d:210:899d:3af7:c272:f777]) (user=gprocida job=sendgmr) by 2002:aa7:d904:0:b0:418:d53b:4662 with SMTP id a4-20020aa7d904000000b00418d53b4662mr1759955edr.217.1647354260594; Tue, 15 Mar 2022 07:24:20 -0700 (PDT) Date: Tue, 15 Mar 2022 14:24:13 +0000 Message-Id: <20220315142413.3683140-1-gprocida@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.35.1.723.g4982287a31-goog Subject: [PATCH] XML writer: don't emit already emitted types To: libabigail@sourceware.org X-Spam-Status: No, score=-21.5 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-Patchwork-Original-From: Giuliano Procida via Libabigail From: Giuliano Procida Reply-To: Giuliano Procida Cc: maennich@google.com, kernel-team@android.com Errors-To: libabigail-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libabigail" Bug 26591 - detect pathologically redundant types in abixml The XML writer sometimes emits type definitions entirely duplicated. This happens if for some reason a type is emitted early but is later emitted as one of the canonical types associated with a translation unit. * src/abg-writer.cc: (writer_context::write_canonical_types_of_scope): Do not emit already emitted types. * tests/data/test-annotate/test13-pr18894.so.abi: Refresh. * tests/data/test-annotate/test15-pr18892.so.abi: Refresh. * tests/data/test-annotate/test21-pr19092.so.abi: Refresh. * tests/data/test-read-dwarf/test13-pr18894.so.abi: Refresh. * tests/data/test-read-dwarf/test15-pr18892.so.abi: Refresh. * tests/data/test-read-dwarf/test21-pr19092.so.abi: Refresh. Signed-off-by: Giuliano Procida --- src/abg-writer.cc | 2 +- .../data/test-annotate/test13-pr18894.so.abi | 284 ------------------ .../data/test-annotate/test15-pr18892.so.abi | 11 - .../data/test-annotate/test21-pr19092.so.abi | 79 ----- .../test-read-dwarf/test13-pr18894.so.abi | 212 ------------- .../test-read-dwarf/test15-pr18892.so.abi | 8 - .../test-read-dwarf/test21-pr19092.so.abi | 59 ---- 7 files changed, 1 insertion(+), 654 deletions(-) diff --git a/src/abg-writer.cc b/src/abg-writer.cc index 7802128d..891f288f 100644 --- a/src/abg-writer.cc +++ b/src/abg-writer.cc @@ -2215,7 +2215,7 @@ write_canonical_types_of_scope(const scope_decl &scope, { if (is_member_type) write_member_type(*i, ctxt, indent); - else + else if (!ctxt.type_is_emitted(*i)) write_type(*i, ctxt, indent); } diff --git a/tests/data/test-annotate/test13-pr18894.so.abi b/tests/data/test-annotate/test13-pr18894.so.abi index 3f4b96a7..1f1836a0 100644 --- a/tests/data/test-annotate/test13-pr18894.so.abi +++ b/tests/data/test-annotate/test13-pr18894.so.abi @@ -1085,169 +1085,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -3192,49 +3029,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -4022,41 +3816,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -4131,49 +3890,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/data/test-annotate/test15-pr18892.so.abi b/tests/data/test-annotate/test15-pr18892.so.abi index 231233dd..606e9b35 100644 --- a/tests/data/test-annotate/test15-pr18892.so.abi +++ b/tests/data/test-annotate/test15-pr18892.so.abi @@ -3466,17 +3466,6 @@ - - - - - - - - - - - diff --git a/tests/data/test-annotate/test21-pr19092.so.abi b/tests/data/test-annotate/test21-pr19092.so.abi index a947e993..69602e8a 100644 --- a/tests/data/test-annotate/test21-pr19092.so.abi +++ b/tests/data/test-annotate/test21-pr19092.so.abi @@ -10532,85 +10532,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/data/test-read-dwarf/test13-pr18894.so.abi b/tests/data/test-read-dwarf/test13-pr18894.so.abi index e9ea1640..0e3e50cb 100644 --- a/tests/data/test-read-dwarf/test13-pr18894.so.abi +++ b/tests/data/test-read-dwarf/test13-pr18894.so.abi @@ -640,128 +640,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1897,38 +1775,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2406,32 +2252,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2475,38 +2295,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/data/test-read-dwarf/test15-pr18892.so.abi b/tests/data/test-read-dwarf/test15-pr18892.so.abi index a6a3771d..cab74419 100644 --- a/tests/data/test-read-dwarf/test15-pr18892.so.abi +++ b/tests/data/test-read-dwarf/test15-pr18892.so.abi @@ -1774,14 +1774,6 @@ - - - - - - - - diff --git a/tests/data/test-read-dwarf/test21-pr19092.so.abi b/tests/data/test-read-dwarf/test21-pr19092.so.abi index 8cf838aa..c5cc1434 100644 --- a/tests/data/test-read-dwarf/test21-pr19092.so.abi +++ b/tests/data/test-read-dwarf/test21-pr19092.so.abi @@ -6810,65 +6810,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -