From patchwork Wed Oct 11 12:05:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dodji Seketeli X-Patchwork-Id: 77527 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 0DA9C3858039 for ; Wed, 11 Oct 2023 12:05:10 +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 5F9153858D1E for ; Wed, 11 Oct 2023 12:05:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5F9153858D1E 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=1697025906; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type; bh=fXSHH2rcyTfdQ0bEjjcDsuOnwodMHvOmIEeF+YIdxPg=; b=a1jOJmysVnR4iI1jWwVUjjkg75ryg0VlXoiIMbNgllv1cGzk4+oTZg0x3Mn6akesx/YxVd lEyluehdCaDziXkXjG5VPlij3Yh1MVwhIOsoLRPvsrgu8v8Kd7b8UsswRiSNtdh1Rao1Aj 1fCETZZAEiieVFG1RMtF66sC5mlRrwo= Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-637-mXv0NisePKewWT-rNN1SFw-1; Wed, 11 Oct 2023 08:05:03 -0400 X-MC-Unique: mXv0NisePKewWT-rNN1SFw-1 Received: by mail-qv1-f71.google.com with SMTP id 6a1803df08f44-66d040c58eeso8863946d6.3 for ; Wed, 11 Oct 2023 05:05:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697025903; x=1697630703; h=mime-version:user-agent:message-id:date:organization:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=fXSHH2rcyTfdQ0bEjjcDsuOnwodMHvOmIEeF+YIdxPg=; b=wj6+ZCtUjhSudvhG2AIcO62PDFXrqPsYplrK+hyPWZp0o5j3Og+rkHLUjzRO34aQuV D16wj5YRFFq9vp/YFnj9h4DEEHW3P8wqQ6UTElMfLW+TZQobZ8bzQPAARf1CLXGFwqYo 0PP989T5U6lAQzK33n8MsiSczzbBhYn9YknmRCcXnrErEcnOEukOrbsZMyzfiZJsrhiO bWXUgnADjuwIXBtvOZ+3PFfTtKthed5T0UCiTOkTrmLXRrD2Z2qSu8FbeTJXZMquDGAr ezkOSwOf4JTT3jbCBqV0wDJZ5cowSL6km+vo6HKPDi+cbnLwGLIXrPq3TZ7Ig+sgLtXB jfUA== X-Gm-Message-State: AOJu0Yzg+4EROiw6mQurG38IsOtx+W+jgpT6u3qMZ+OImP26BqAU7+7J sAU9J6OvIVLSk5fpj37nHo+lgneuth9bWUBeNjUaqjJMs58jEKbHf+vEk8xpskmB8wMwuHkxKKS Zvda/KavMK2w3XhC3iAwDw6ZU3gGu X-Received: by 2002:ad4:418a:0:b0:658:65ed:7e8 with SMTP id e10-20020ad4418a000000b0065865ed07e8mr22372886qvp.57.1697025903121; Wed, 11 Oct 2023 05:05:03 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHMw0bIIoVuZnF2TM6z4j1450fkKzsfszWTlefm5p69GSD1Cqz6yYE6kP78bfM5NsUcPJagFw== X-Received: by 2002:ad4:418a:0:b0:658:65ed:7e8 with SMTP id e10-20020ad4418a000000b0065865ed07e8mr22372860qvp.57.1697025902725; Wed, 11 Oct 2023 05:05:02 -0700 (PDT) Received: from localhost ([88.120.130.27]) by smtp.gmail.com with ESMTPSA id k27-20020a05620a143b00b007742c6823a3sm5134456qkj.108.2023.10.11.05.05.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Oct 2023 05:05:02 -0700 (PDT) Received: by localhost (Postfix, from userid 1000) id ACD305042F2C; Wed, 11 Oct 2023 14:05:00 +0200 (CEST) From: Dodji Seketeli To: libabigail@sourceware.org Cc: dodji@redhat.com Subject: [PATCH, applied] ini: Support '[' and ']' in arguments of function call expressions Organization: Red Hat / France X-Operating-System: AlmaLinux 9.2 X-URL: http://www.redhat.com Date: Wed, 11 Oct 2023 14:05:00 +0200 Message-ID: <87sf6hpdoz.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=-11.9 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_H4, RCVD_IN_MSPIKE_WL, 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 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, Consider the suppression specification below: [suppress_type] type_kind = struct has_data_member_inserted_at = offset_of_first_data_member_regexp(.*p[0-9]?$) The parser wrongly considers that in the regular expression ".*p[0-9]?$", the characters '[' and ']' should be escaped. Fixed thus. * src/abg-ini.cc (char_is_function_name_char): The only delimiters should be the '(' and ')' characters. * tests/data/test-diff-suppr/test-has-data-member-inserted-at-1-report-2.txt: New reference test output. * tests/data/test-diff-suppr/test-has-data-member-inserted-at-1.2.suppr: New suppression specification. * 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 material above to this test harness. Signed-off-by: Dodji Seketeli Applied to master --- src/abg-ini.cc | 2 +- tests/data/Makefile.am | 2 ++ .../test-has-data-member-inserted-at-1-report-2.txt | 4 ++++ .../test-has-data-member-inserted-at-1.2.suppr | 3 +++ tests/test-diff-suppr.cc | 10 ++++++++++ 5 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 tests/data/test-diff-suppr/test-has-data-member-inserted-at-1-report-2.txt create mode 100644 tests/data/test-diff-suppr/test-has-data-member-inserted-at-1.2.suppr diff --git a/src/abg-ini.cc b/src/abg-ini.cc index 830b3ab8..4510675f 100644 --- a/src/abg-ini.cc +++ b/src/abg-ini.cc @@ -145,7 +145,7 @@ char_is_function_name_char(int b) static bool char_is_function_argument_char(int b) { - if (char_is_delimiter(b) || b == '(' || b == ')') + if (b == '(' || b == ')') return false; return true; } diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am index 7b07236e..6031b48d 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -1893,6 +1893,8 @@ test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1-report-0.txt \ test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0 \ test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi \ test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0-report-0.txt \ +test-diff-suppr/test-has-data-member-inserted-at-1-report-2.txt \ +test-diff-suppr/test-has-data-member-inserted-at-1.2.suppr \ \ test-lookup-syms/test0.cc \ test-lookup-syms/test0.o \ diff --git a/tests/data/test-diff-suppr/test-has-data-member-inserted-at-1-report-2.txt b/tests/data/test-diff-suppr/test-has-data-member-inserted-at-1-report-2.txt new file mode 100644 index 00000000..b4ea5bf1 --- /dev/null +++ b/tests/data/test-diff-suppr/test-has-data-member-inserted-at-1-report-2.txt @@ -0,0 +1,4 @@ +Functions changes summary: 0 Removed, 0 Changed, 0 Added function +Variables changes summary: 0 Removed, 0 Changed, 0 Added variable +Unreachable types summary: 0 removed, 0 changed (1 filtered out), 0 added type + diff --git a/tests/data/test-diff-suppr/test-has-data-member-inserted-at-1.2.suppr b/tests/data/test-diff-suppr/test-has-data-member-inserted-at-1.2.suppr new file mode 100644 index 00000000..bbf52d92 --- /dev/null +++ b/tests/data/test-diff-suppr/test-has-data-member-inserted-at-1.2.suppr @@ -0,0 +1,3 @@ +[suppress_type] + type_kind = struct + has_data_member_inserted_at = offset_of_first_data_member_regexp(.*p[0-9]?$) diff --git a/tests/test-diff-suppr.cc b/tests/test-diff-suppr.cc index 19db440b..4e63b2cc 100644 --- a/tests/test-diff-suppr.cc +++ b/tests/test-diff-suppr.cc @@ -2266,6 +2266,16 @@ InOutSpec in_out_specs[] = "data/test-diff-suppr/test-has-data-member-inserted-at-1-report-1.txt", "output/test-diff-suppr/test-has-data-member-inserted-at-1-report-1.txt" }, + { + "data/test-diff-suppr/test-has-data-member-inserted-at-1-v0.o", + "data/test-diff-suppr/test-has-data-member-inserted-at-1-v1.o", + "", + "", + "data/test-diff-suppr/test-has-data-member-inserted-at-1.2.suppr", + "--drop-private-types --no-default-suppression --non-reachable-types", + "data/test-diff-suppr/test-has-data-member-inserted-at-1-report-2.txt", + "output/test-diff-suppr/test-has-data-member-inserted-at-1-report-2.txt" + }, // This should be the last entry {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL} };