From patchwork Thu Feb 4 09:57:23 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dodji Seketeli X-Patchwork-Id: 41938 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 4604D386545E; Thu, 4 Feb 2021 09:57:34 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4604D386545E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1612432654; bh=ssKEeODC4fB26qeAJ87nX5Jy44imK53Smz9yo9YN0LQ=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Help: List-Subscribe:From:Reply-To:From; b=dWH4mnL2idvP6lZpBe5hoHkPRkLWvBnJsWC5gXP1nHgRlLmzB0jpuW7dV5R7f76F9 uCISpNti5++nF/LpLYV/tPmdVJkIgpMd0q9izSfCcp81TBuJK2PqqpHzV/M71IRGTj bez1wbcZK7lbRHqfYh4+K/0GgWtI8mTrSpCyLMnE= 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 [63.128.21.124]) by sourceware.org (Postfix) with ESMTP id 5FBD0386F419 for ; Thu, 4 Feb 2021 09:57:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 5FBD0386F419 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-404-SG-A1Af5OGmorAZdJV9nCg-1; Thu, 04 Feb 2021 04:57:27 -0500 X-MC-Unique: SG-A1Af5OGmorAZdJV9nCg-1 Received: by mail-wm1-f70.google.com with SMTP id z67so1725628wme.3 for ; Thu, 04 Feb 2021 01:57:27 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:organization:date:message-id :user-agent:mime-version; bh=ssKEeODC4fB26qeAJ87nX5Jy44imK53Smz9yo9YN0LQ=; b=o/Iz6OjLKnU4F+8EwGNz39T2sDH3p3vnOUjZk0+NKFSbIv4bDa7kdXPXETIu1OBgO3 flkElboETlXjflC0Vauu9UtplBUxPCye9Kc2OFgYG+ioIXhcb+OcAtnOhadyX0nhLnBN hm2z3Dp7oQWY957/9SjwKi5/txz08xoBcDteOboac6h3Xs4G11rOP96lIxq4ioAsvRHq TpoaIN7lzv1XCHyVGsm50EYYoF0MAZ6/eUIaESJUJnSeGOzgORsgnIawszCtXRWkkpcP 4vZgjKj+tXiGlNrIIfLRZZzW4DovOaafnjLLtMJrjGy1X5Es3TKa1YOcXLzihobU8ZvS 3hJw== X-Gm-Message-State: AOAM531/DOewfQdsQIryQT6xKHH5IyXsTFg/OJsbOIv1dtVIwmWOVJaf 4RD8xOApzuyALR1cbqZsfyZTShnIy6bz/6WL8PqsUIfVPRgt1w+h0M5zfjJN2nIQSUHABYo/UWl FQ1ONoeW1Y/0v00I6yC8LluLhG2RWWCeKEwq18ECt9N6Y61HaIyRQi7vL6JyzKGI+fD/y X-Received: by 2002:a7b:c355:: with SMTP id l21mr6795938wmj.61.1612432645368; Thu, 04 Feb 2021 01:57:25 -0800 (PST) X-Google-Smtp-Source: ABdhPJyq2H77V5YRBosajer7D7SmkznT1K1SNyVhU2FrLeFI7FlkHPNZOrxt9iclR9nVqi6dapJi6w== X-Received: by 2002:a7b:c355:: with SMTP id l21mr6795911wmj.61.1612432644943; Thu, 04 Feb 2021 01:57:24 -0800 (PST) Received: from localhost ([88.120.130.27]) by smtp.gmail.com with ESMTPSA id c9sm8023862wrw.76.2021.02.04.01.57.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Feb 2021 01:57:24 -0800 (PST) Received: by localhost (Postfix, from userid 1000) id 57506581CE5; Thu, 4 Feb 2021 10:57:23 +0100 (CET) To: libabigail@sourceware.org Subject: [PATCH] Bug 27267 - Better support for opaque enum types Organization: Red Hat / France X-Operating-System: Fedora 34 X-URL: http://www.redhat.com Date: Thu, 04 Feb 2021 10:57:23 +0100 Message-ID: <87h7msf94s.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 X-Spam-Status: No, score=-12.3 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_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP, T_FILL_THIS_FORM_SHORT autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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: Dodji Seketeli via Libabigail From: Dodji Seketeli Reply-To: Dodji Seketeli Errors-To: libabigail-bounces@sourceware.org Sender: "Libabigail" Hello, Upon a request to build the IR for a opaque enum type, get_opaque_version_of_type wrongly returns a nil type even though the code is in there to construct an opaque variant of the enum. This patch cleans up that code to let it build an opaque enum type. It also ensures the opaque enum type is properly added to its lexical scope to ensure proper life cycle management. * src/abg-dwarf-reader.cc (get_opaque_version_of_type): Do not quit early for enum types, because the code that comes a bit later can handle enums. Add the newly built enum to its scope for proper life cycle management. * tests/data/test-diff-suppr/PR27267/include-dir-v{0,1}/include.h: New include files for the input test library. * tests/data/test-diff-suppr/PR27267/libtestpr27267-v{0,1}.so: New input test library. * tests/data/test-diff-suppr/PR27267/report-1.txt: New reference output for the comparison. * tests/data/test-diff-suppr/PR27267/v{0,1}.c: Source code for the new input test library. * tests/data/Makefile.am: Add the new test material above to source distribution. * tests/test-diff-suppr.cc (in_out_specs): Add the new test input above to the test harness. Signed-off-by: Dodji Seketeli --- src/abg-dwarf-reader.cc | 7 +---- tests/data/Makefile.am | 7 +++++ .../PR27267/include-dir-v0/include.h | 8 +++++ .../PR27267/include-dir-v1/include.h | 8 +++++ .../PR27267/libtestpr27267-v0.so | Bin 0 -> 17376 bytes .../PR27267/libtestpr27267-v1.so | Bin 0 -> 17400 bytes .../data/test-diff-suppr/PR27267/report-1.txt | 0 tests/data/test-diff-suppr/PR27267/v0.c | 25 ++++++++++++++++ tests/data/test-diff-suppr/PR27267/v1.c | 28 ++++++++++++++++++ tests/test-diff-suppr.cc | 10 +++++++ 10 files changed, 87 insertions(+), 6 deletions(-) create mode 100644 tests/data/test-diff-suppr/PR27267/include-dir-v0/include.h create mode 100644 tests/data/test-diff-suppr/PR27267/include-dir-v1/include.h create mode 100755 tests/data/test-diff-suppr/PR27267/libtestpr27267-v0.so create mode 100755 tests/data/test-diff-suppr/PR27267/libtestpr27267-v1.so create mode 100644 tests/data/test-diff-suppr/PR27267/report-1.txt create mode 100644 tests/data/test-diff-suppr/PR27267/v0.c create mode 100644 tests/data/test-diff-suppr/PR27267/v1.c diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc index 13f1fe61..13c81821 100644 --- a/src/abg-dwarf-reader.cc +++ b/src/abg-dwarf-reader.cc @@ -15906,12 +15906,6 @@ get_opaque_version_of_type(read_context &ctxt, && tag != DW_TAG_enumeration_type) return result; - if (tag == DW_TAG_union_type) - // TODO: also handle declaration-only unions. To do that, we mostly - // need to adapt add_or_update_union_type to make it schedule - // declaration-only unions for resolution too. - return result; - string type_name, linkage_name; location type_location; die_loc_and_name(ctxt, type_die, type_location, type_name, linkage_name); @@ -15973,6 +15967,7 @@ get_opaque_version_of_type(read_context &ctxt, underlying_type, enumeratorz, linkage_name)); + add_decl_to_scope(enum_type, scope); result = enum_type; } } diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am index 68ad902b..a427659d 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -1482,6 +1482,13 @@ test-diff-suppr/libtest48-soname-abixml-suppr.txt \ test-diff-suppr/libtest48-soname-abixml-suppr-2.txt \ test-diff-suppr/libtest48-soname-abixml-suppr-3.txt \ test-diff-suppr/libtest48-soname-abixml-suppr-4.txt \ +test-diff-suppr/PR27267/include-dir-v0/include.h \ +test-diff-suppr/PR27267/include-dir-v1/include.h \ +test-diff-suppr/PR27267/v0.c \ +test-diff-suppr/PR27267/v1.c \ +test-diff-suppr/PR27267/libtestpr27267-v0.so \ +test-diff-suppr/PR27267/libtestpr27267-v1.so \ +test-diff-suppr/PR27267/report-1.txt \ \ test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1 \ test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi \ diff --git a/tests/data/test-diff-suppr/PR27267/include-dir-v0/include.h b/tests/data/test-diff-suppr/PR27267/include-dir-v0/include.h new file mode 100644 index 00000000..0b915537 --- /dev/null +++ b/tests/data/test-diff-suppr/PR27267/include-dir-v0/include.h @@ -0,0 +1,8 @@ +enum opaque_enum; +struct opaque_struct; + +typedef enum opaque_enum opaque_enum; +typedef struct opaque_struct opaque_struct; + +void +fn(opaque_struct *, opaque_enum *e); diff --git a/tests/data/test-diff-suppr/PR27267/include-dir-v1/include.h b/tests/data/test-diff-suppr/PR27267/include-dir-v1/include.h new file mode 100644 index 00000000..0b915537 --- /dev/null +++ b/tests/data/test-diff-suppr/PR27267/include-dir-v1/include.h @@ -0,0 +1,8 @@ +enum opaque_enum; +struct opaque_struct; + +typedef enum opaque_enum opaque_enum; +typedef struct opaque_struct opaque_struct; + +void +fn(opaque_struct *, opaque_enum *e); diff --git a/tests/data/test-diff-suppr/PR27267/libtestpr27267-v0.so b/tests/data/test-diff-suppr/PR27267/libtestpr27267-v0.so new file mode 100755 index 0000000000000000000000000000000000000000..58df0022f6686c2f3ab34b284a30a91796eec4ec GIT binary patch literal 17376 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 literal 0 HcmV?d00001 diff --git a/tests/data/test-diff-suppr/PR27267/libtestpr27267-v1.so b/tests/data/test-diff-suppr/PR27267/libtestpr27267-v1.so new file mode 100755 index 0000000000000000000000000000000000000000..fdf648a5c2494ffd99f87e88bf7e8b385e6ca794 GIT binary patch literal 17400 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 A1poj5 literal 0 HcmV?d00001 diff --git a/tests/data/test-diff-suppr/PR27267/report-1.txt b/tests/data/test-diff-suppr/PR27267/report-1.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/data/test-diff-suppr/PR27267/v0.c b/tests/data/test-diff-suppr/PR27267/v0.c new file mode 100644 index 00000000..74527dc0 --- /dev/null +++ b/tests/data/test-diff-suppr/PR27267/v0.c @@ -0,0 +1,25 @@ +/** + * + * Compile with: + * gcc -shared -g -Wall -o libtestpr27267-v0.so v0.c + * + */ + +#include "include-dir-v0/include.h" + +enum opaque_enum +{ + e0, + e1 +}; + +struct opaque_struct +{ + opaque_enum m0; +}; + +void +fn(opaque_struct * s, opaque_enum *e) +{ + s->m0 = *e; +} diff --git a/tests/data/test-diff-suppr/PR27267/v1.c b/tests/data/test-diff-suppr/PR27267/v1.c new file mode 100644 index 00000000..c36d09ae --- /dev/null +++ b/tests/data/test-diff-suppr/PR27267/v1.c @@ -0,0 +1,28 @@ +/** + * + * Compile with: + * gcc -shared -g -Wall -o libtestpr27267-v1.so v1.c + * + */ + +#include "include-dir-v1/include.h" + +enum opaque_enum +{ + e0, + e1, + e2 +}; + +struct opaque_struct +{ + opaque_enum m0; + opaque_enum m1; +}; + +void +fn(opaque_struct * s, opaque_enum *e) +{ + s->m0 = *e; + s->m1 = s->m0; +} diff --git a/tests/test-diff-suppr.cc b/tests/test-diff-suppr.cc index c7b73fd6..5b4d08d3 100644 --- a/tests/test-diff-suppr.cc +++ b/tests/test-diff-suppr.cc @@ -2026,6 +2026,16 @@ InOutSpec in_out_specs[] = "data/test-diff-suppr/libtest48-soname-abixml-report-1.txt", "output/test-diff-suppr/libtest48-soname-abixml-report-1_suppr4.txt" }, + { + "data/test-diff-suppr/PR27267/libtestpr27267-v0.so", + "data/test-diff-suppr/PR27267/libtestpr27267-v1.so", + "data/test-diff-suppr/PR27267/include-dir-v0", + "data/test-diff-suppr/PR27267/include-dir-v1", + "", + "--drop-private-types --no-default-suppression", + "data/test-diff-suppr/PR27267/report-1.txt", + "output/test-diff-suppr/PR27267/report-1.txt" + }, // This should be the last entry {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL} };