From patchwork Thu Dec 16 05:20:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Guillermo E. Martinez" X-Patchwork-Id: 49002 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 0F61E385842E for ; Thu, 16 Dec 2021 05:20:28 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0F61E385842E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1639632028; bh=+Zvno8f/qAPxo9o9BjFrGMgLToiwILXzMSPxA9z8w5c=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Help: List-Subscribe:From:Reply-To:From; b=TmId6EkphRZdR8+e6EoWSTHxdc6SR2USkLoCc3vRYrfcB8TOydDbLj1tUVyocC4hz ds6fm6rhyUanVUdbvcfuu52R5skQxkYGTb/ddp9YC7l/6oGlxW3+TQH84icvG9mxhF yDYJ+wmNJdBvxT/Za+tFtYz9Yr9bFA4Wtb/Z6ZrU= X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id A99453858402 for ; Thu, 16 Dec 2021 05:20:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A99453858402 Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1BG48q24022969 for ; Thu, 16 Dec 2021 05:20:21 GMT Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by mx0b-00069f02.pphosted.com with ESMTP id 3cykmchk5s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 16 Dec 2021 05:20:21 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1BG5KAEp156435 for ; Thu, 16 Dec 2021 05:20:20 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam07lp2040.outbound.protection.outlook.com [104.47.51.40]) by aserp3030.oracle.com with ESMTP id 3cyju9cdae-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 16 Dec 2021 05:20:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MGdZluSw0dCIhIh1ioY6qKMs9PVMQE0dbH+Sn+/eec044vybRCq+B1rKkRs3TsCr4a6DAzuHLucf0p7ZxA9cJ0xdJQseTFZv4OAc635ON0eHfCm/CNNV9Mg2sS6xmmSUO7YlZZcmCxQXGZ2SV42ttwdFd0R0lAXZwsxDOorqSgP2MXTODaOthingUQmJlcQDl6iXgU9bhy1RbDDs/zWMtXd6HoLU4/45jsGi+DGs8LLxlHC7sKYXoTLSXEkFf1HxHplnPt2y4tzXB436KFxdiO9qCGudWXCbDFBMU7Bi/sWIu9gTYd5wvCo8olE4rr3KDBgyoP8hMa240x5OomHETw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=+Zvno8f/qAPxo9o9BjFrGMgLToiwILXzMSPxA9z8w5c=; b=hVpOWBc+mYUxFLs3hQY00gM8j4+m5XQntDwufj8Ke7Rlxv+10PC2OjBysVHRL7E3J/0p/t+6Z7S8rmKGO7OPdNKb43uW3GRS3ERyZ8bgka25njiMuU8yT6wH0ogIuFFxVn7gIuHqEhiLFp5S8tMJoBruqQjRi4jRgf5BVJEDvDZK8Ne6f5vcKOEdUWGxMvD2n+rnJzch/h2tvsO2StBPyQronjR8eaMdmQ6l/Kk8cla/d4sPS9ilXwT1O5bylTD2vK5NYpygYZMPYWutEqr5D6UGcJ/6oL1W+bA/Vs0yVlquZ23bNR2XQnwSgC04DB4bxNIPu6Nn0NgrdgYXjiS9Dw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none Received: from BL0PR10MB2852.namprd10.prod.outlook.com (2603:10b6:208:76::22) by BL0PR10MB2994.namprd10.prod.outlook.com (2603:10b6:208:72::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.17; Thu, 16 Dec 2021 05:20:18 +0000 Received: from BL0PR10MB2852.namprd10.prod.outlook.com ([fe80::6927:5e6b:31ff:14bd]) by BL0PR10MB2852.namprd10.prod.outlook.com ([fe80::6927:5e6b:31ff:14bd%3]) with mapi id 15.20.4778.018; Thu, 16 Dec 2021 05:20:18 +0000 To: libabigail@sourceware.org Subject: [PATCH] ctf-reader: Fix multiple var-decl in anonymous struct/uninons Date: Wed, 15 Dec 2021 23:20:07 -0600 Message-Id: <20211216052007.374822-1-guillermo.e.martinez@oracle.com> X-Mailer: git-send-email 2.34.1 X-ClientProxiedBy: SN4PR0501CA0121.namprd05.prod.outlook.com (2603:10b6:803:42::38) To BL0PR10MB2852.namprd10.prod.outlook.com (2603:10b6:208:76::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3fd4167b-ed0f-4444-505d-08d9c053bfcb X-MS-TrafficTypeDiagnostic: BL0PR10MB2994:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3826; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: hxDUATP9RC1ZNtYRlCEuxyJQLq35nQeYq5BZJPCm0+E+NDbYIGFYeye6kF1AlOHZ3kIKWGFWC90oAqjV48LkqIadUv7q60MMnQ5TKF3YlRxtl91Fvhlf2zgTlR+RlNg3cq/oNJpd2wv9CA4ZTaS5SZ1/1vXr4pHnee8DRwN9ru5VoKQc6dq+cfWcDkqJBJV31tN7LjRTlUIKhQqi4iui29iN3/it/uNLx550UqSASuySchU4KvEZRbddwhcOprNTf0FNPaidDOjJW1hOIL/scWC/YiRdVEZ6eE9/umHHsMwmY35WI2QnNyXPSseBWTzLB0TDnQ0+2ieOmJcI6EuZjLGYoU3i6DBy+pCOOgeCK/TwplWYxydTkssC0Uy1br0jAgL8ZCyqvac5ybNvMNxpmwCDKn3qxyx9h5Mz7+cYpmH0nrtcNVzaP0ITIJhtu0s1hOhERLurViJ08bJnNPDCH2YLy5LeqezaPIy3vnK2kvVw04HYR9HKbP/Nb/Gzbvn78OIWZCE3Wt//ofyhBXqeATDB5PZx3f68BRGe1wFcZIi8QYhK32+KqcD+eVMuGA9c9apkFdJ/NYSUljYPVzHU1k6+bZrcZmWZ+eahUJ2SfBileNV7dEDS5tsqQ+oLuR4bu65tVCxcNOYNe3ZJriuvcA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BL0PR10MB2852.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(4326008)(1076003)(5660300002)(2616005)(8936002)(6512007)(2906002)(186003)(508600001)(6916009)(6506007)(8676002)(6486002)(103116003)(66476007)(107886003)(83380400001)(36756003)(66946007)(316002)(66556008)(38100700002)(52116002)(6666004)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: EkpfMVG9bp1zJqA2za5FhGo1zP2WMQD6C/eVSY8y3fJocaHo95fKqF6x/BnvCi1pEh4ACbBUp5cIfZpQngmXq7gjn81PPmOMMjxvjM8Kz+fK3RSU40U+9Ru9TLhE7R4GUVQY2NDIqlipPWi1TIQ229my5qPmHoPtIoK1MNbuD0Dv/X2X/RFTRu8BJWrH/6iUsHkuVsX4vveeZxLc6Ad+5qmhzOfX4yUEtIFwjSaAhXW6bP+tY19zMihkItMyxwA1AiJSbG8ugCF5DUiB0+jam4wEz91HXTswBngOU7zb2FU81Jq+tpEqedEmCV1UG81f/TMnvc4rCFcEcu/q2Y3+8eaYPgydNnPRXY8nnZgyzuY9kR8hD/LWOG0eYSXttznBv7NxHGQyMzhhW45v+i4hmFAcgbfER7B/0bu9DKpJDInUVJ8wJqHEtK77kV+sZWjSSwmhjDZPbYy4901uQwgQXW8i8cB+h7ekFCsO8kCljZT7TQedjNYTLWeMHMEAALNQzs0gXHZKXFJDBDBSzh/wGVbOtJE4eG+SiOs33cyD70SwOWPi0nN2u7ySM0Pz3j6IzLX9yy48Z6pilWAN3Yo3L2fQt6OjqCm49nos//TsK/NI1FmjIENZTD7XdlL+uMI0f+ciWKWjhg5gaLGFjXwfcPp6ynwvDA5s8SkLy8Y61yM8r/hJqfnzNM/uZsx+0GfxZWybCktCInAt/a6AcTNTGJ5UpEf1TTlQHU7VAwwogjF51ZLZgMtT4oa0fubSPhRSMK+phMuFAWh8g0oNAD3XlSaLo26uM50FkvdzBk59gpOSTPwWzmGJUXhem6LBQJeXg7DD0t/inL6ifsjV2hwA5OBZ4NzhCSil01CEtSDkL1FXgGnfWUhiBHELEIVfiz40bGX4V34GVR38wTLHl2HuYLqzrJYuiCSWKkZgam0GHHGHxQfQDGgrbtMc30D0ydA9O9TJsXYHkafD68f3NFi4pL0EaYGlkE/uj6EWCNPdnI4pYX2fKPelHWF7qW7iOl3QR1YX4RDOsIca1dOhzcqwIqHv8GvJQhF4zR2zvdPUYWcVKVoXYN6PqGhC2PYMrTBY/OBOB1lM6gwvuo7YPMxqw9iDdJ6kmB2Uz0LoJIbUsFD1FVrStZ+Rs6K5bwGulrubG/rf7RNnMK2qJH9y9XXe95qQmrAdYlyLpeyv3Ajr/NvUhHt8EBuTKpD3PxhjkHaKGWYUfkXeIyEvWcV10KVeiqcHkeHC97rRSo0vG7y9DiagmfxLZX0wOcekATfhDhXZeTDaehWLSUIlNtrNwIg/1evsFqxup2YWtBmjYCn1YKNxSHpppsePjBLLsRU4PNZwmB9BCwXdCLXFbSZ/uQNBaIDWSedQ9wvvg1EAXQCoWt8guJMeJ7XfeLob3VRLVWhKW4bILI/cdGyKhAagTrKyjBHC7pYrRMbeWG5gWg6aHTj2SWy7yINiaQ/JHdb6uVqUsXPmzwnkNcYYiEIrKK8IrWfv7uCyd2oqeSUjJFSc38R52VbI9uBRs6sDeWqCMqTvRbTQ3Xb8JOYfQYxFTm+CJcqtPSbdBi3gjiRT5Uo0jfv7tUOsNiVzw8izN0UsPa/oI8WbygEbumx9P27vFhp2ZT0U6LLdEOHNpkwTKJWj9kSWgCYdaT3zMWjt7NXPFkX52Jl0KVI952FA9+z62H228fSW+P8jJJXN0aSXDFhQv2I= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3fd4167b-ed0f-4444-505d-08d9c053bfcb X-MS-Exchange-CrossTenant-AuthSource: BL0PR10MB2852.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2021 05:20:18.5365 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Tnx16XPlMLOv2ctWTPQ7JiAg4SJzPZTuIkc1Bv+lAGeAerJdfJ7CJklfg5QOuWrRHJRiPGvONANb//S8iKruaAlgO7DFxBZ0e7wBfW/n9U8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR10MB2994 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10199 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 phishscore=0 spamscore=0 mlxscore=0 adultscore=0 bulkscore=0 suspectscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112160031 X-Proofpoint-ORIG-GUID: GMqfez7axEJTh98rh7cDDXrxAB63f1QK X-Proofpoint-GUID: GMqfez7axEJTh98rh7cDDXrxAB63f1QK X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, TXREP 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: "Guillermo E. Martinez via Libabigail" From: "Guillermo E. Martinez" Reply-To: "Guillermo E. Martinez" Errors-To: libabigail-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libabigail" Hello libabigail team, This patch fix multiple `var-decl' node in anonymous struct/uninons in ctf-reader. Comments will be appreciated. Thanks in advanced!, Guillermo This patch avoid multiple inclusion of `var-decl' node for the same field in anonymous struct/union declaration in the abixml, e.g: struct uprobe_task { union { struct { unsigned long vaddr; }; struct { int dup_xol_work; }; }; }; Three `var-decl' nodes are written in abixml file, expected a single one: * src/abg-ctf-reader.cc (process_ctf_sou_members): Remove CTF_MN_RECURSE flag. * tests/data/Makefile.am: Add new input test files. * tests/data/test-read-ctf/test-anonymous-fields.c: New test file. * tests/data/test-read-ctf/test-anonymous-fields.o: New expected test output. * tests/data/test-read-ctf/test-anonymous-fields.o.abi: Likewise. * tests/test-read-ctf.cc: Add new test. Signed-off-by: Guillermo E. Martinez --- src/abg-ctf-reader.cc | 2 +- .../test-read-ctf/test-anonymous-fields.c | 19 ++++++++++ .../test-read-ctf/test-anonymous-fields.o | Bin 0 -> 1408 bytes .../test-read-ctf/test-anonymous-fields.o.abi | 33 ++++++++++++++++++ tests/test-read-ctf.cc | 8 +++++ 5 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 tests/data/test-read-ctf/test-anonymous-fields.c create mode 100644 tests/data/test-read-ctf/test-anonymous-fields.o create mode 100644 tests/data/test-read-ctf/test-anonymous-fields.o.abi diff --git a/src/abg-ctf-reader.cc b/src/abg-ctf-reader.cc index fbf6baef..8151bfbb 100644 --- a/src/abg-ctf-reader.cc +++ b/src/abg-ctf-reader.cc @@ -321,7 +321,7 @@ process_ctf_sou_members(read_context *ctxt, while ((member_size = ctf_member_next(ctf_dictionary, ctf_type, &member_next, &member_name, &member_ctf_type, - CTF_MN_RECURSE)) >= 0) + 0 /* flags */)) >= 0) { ctf_membinfo_t membinfo; diff --git a/tests/data/test-read-ctf/test-anonymous-fields.c b/tests/data/test-read-ctf/test-anonymous-fields.c new file mode 100644 index 00000000..be97bfa3 --- /dev/null +++ b/tests/data/test-read-ctf/test-anonymous-fields.c @@ -0,0 +1,19 @@ +/* + * test single var-decl in anonymous struct/union + * gcc -gctf -c tests/data/test-read- ctf/test-anonymous-fields.c \ + * -o tests/data/test-read-ctf/test-anonymous-fields.o +*/ +struct uprobe_task { + union { + struct { + unsigned long vaddr; + }; + + struct { + int dup_xol_work; + }; + }; +}; + +struct uprobe_task t; + diff --git a/tests/data/test-read-ctf/test-anonymous-fields.o b/tests/data/test-read-ctf/test-anonymous-fields.o new file mode 100644 index 0000000000000000000000000000000000000000..452a8122c5cf4fa8fb81772bdfd824dfa92954ce GIT binary patch literal 1408 zcmbVL&5qMB5S}ch{9Raa;YXlwVi$6T?#<&Ao4O!gmHd zCL9_W>K~BKnwiz7m+*XyPP5#e%Tz68y$IV{6^mNrVNq-N!1KHTLV3HIuVp#^D4Qj; zt45|`uDM!*hWK1oB2K%si)F*JQpBps;<8A2S}b@`M(s-JM(`@uLTMG}T=O1ANaj(d z&xVZGvhFI`s_3i`Wv*BTaB_Tn6ds(seRmj6XKcbI;cPOSPSL{yv0jO$s6?%Kd5G6H zI{=eB;c4KBH(_cd}?(CPo~+IOS(@8!Rr+I($4$B?IH=rz-4^|u|~-#wL1 Yjh?;_*ZgPgV{w;0Gy3NRR910 literal 0 HcmV?d00001 diff --git a/tests/data/test-read-ctf/test-anonymous-fields.o.abi b/tests/data/test-read-ctf/test-anonymous-fields.o.abi new file mode 100644 index 00000000..0419c29c --- /dev/null +++ b/tests/data/test-read-ctf/test-anonymous-fields.o.abi @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/test-read-ctf.cc b/tests/test-read-ctf.cc index b448ddc5..4b11cca6 100644 --- a/tests/test-read-ctf.cc +++ b/tests/test-read-ctf.cc @@ -212,6 +212,14 @@ static InOutSpec in_out_specs[] = "data/test-read-ctf/test-dynamic-array.o.abi", "output/test-read-ctf/test-dynamic-array.o.abi" }, + { + "data/test-read-ctf/test-anonymous-fields.o", + "", + "", + SEQUENCE_TYPE_ID_STYLE, + "data/test-read-ctf/test-anonymous-fields.o.abi", + "output/test-read-ctf/test-anonymous-fields.o.abi" + }, { "data/test-read-common/PR27700/test-PR27700.o", "",