From patchwork Fri Apr 29 14:05:19 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Guillermo E. Martinez" X-Patchwork-Id: 53356 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 079313856DC0 for ; Fri, 29 Apr 2022 14:07:02 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 079313856DC0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1651241222; bh=zwRg2xs2Punhm/6o8AraauRC2RHgygkeocR03rmVhh4=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Help:List-Subscribe:From:Reply-To:From; b=rRb627oGI7FL+1s/q9OKZz0Djnw3gSIsYGB41YyMF4AejK0Wbz6sneNm0CCoulyNx zNdQbph43Mbm5Gdch/gc1GnrK9IN6nOYT1pKC8e/G6i715H3XhFUIRhF8+jxPEk0Q3 ZNdNSq9DV5SnLJ+1YaG7hvqI7Ow1jodpmSODKMfw= X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id A6D933857372 for ; Fri, 29 Apr 2022 14:05:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A6D933857372 Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 23TAg5lT032115 for ; Fri, 29 Apr 2022 14:05:50 GMT Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fmb1067px-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 29 Apr 2022 14:05:50 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 23TDq84d029848 for ; Fri, 29 Apr 2022 14:05:48 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2175.outbound.protection.outlook.com [104.47.58.175]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fp5yq7k1x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 29 Apr 2022 14:05:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VxEaKC2cyPTltJA+BcTNyc1w4d3Vwfy2iRzmY366CR3Ze2NZoRBYZDn1j+H3zsTUJ3sYImTrtpJyoiUYp13p2xHFgXqKlxLOJbkIxknrt0eQDc25e8MbCE+vC0b37Q4zLuz26/Ow/w5n9qayK7F511oaa3cK3b4BVny20vRLuoTGMfEcVA843TMex+T3EWjFb70CaVcywca86cEOaliydN1lI8xkJzSbwQlGWjVUD5f4dQ2T+gIdcoAXd2b4kcqvrb4Vs4FYAvuYc6ERQ23GE5by8M8jXjNDQk0er6g0EdJ2AcNeITdnUUwGTLLDSZxpyxXNjF5vYv3WyP//KJX4CQ== 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=zwRg2xs2Punhm/6o8AraauRC2RHgygkeocR03rmVhh4=; b=Ss/91mUO3whjfoxyAzTjT0NnvgFPy71nv/PdfSYwh/rgZOUByQyVjHPe4waKlRMAzXn47zJj9b8n6SKGV9rmPUrIaeYDuwAWuDmHrsXu/Zty3g6A1/QFiuz2HkXh5HIK2Pojwbv4TQVzNFjSw7gzJTVp+IP4BY+9bfqiX9R9vIEiJ5zH4VXr3+8pesUdORYojFK9KXZn/IzEDciMZfxa67JVz4gi6ybfrreEjSq3JnEHUHECb3612Y32PdofPgs15RpvIdACaSOBsI0XCC84trVaqub8m+hQ/tgwjSD8mMiDW37vJ8Qw8soul6PBfqoDaekzFYdWj/dg/eHBUTfg4w== 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 MWHPR10MB1407.namprd10.prod.outlook.com (2603:10b6:300:23::20) by PH0PR10MB5795.namprd10.prod.outlook.com (2603:10b6:510:ff::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.15; Fri, 29 Apr 2022 14:05:46 +0000 Received: from MWHPR10MB1407.namprd10.prod.outlook.com ([fe80::107d:de35:fa5f:3cc0]) by MWHPR10MB1407.namprd10.prod.outlook.com ([fe80::107d:de35:fa5f:3cc0%7]) with mapi id 15.20.5206.014; Fri, 29 Apr 2022 14:05:46 +0000 To: libabigail@sourceware.org Subject: [PATCH v3] ctf-reader: Fix multiple var-decl in anonymous struct/uninons Date: Fri, 29 Apr 2022 09:05:19 -0500 Message-Id: <20220429140519.259029-1-guillermo.e.martinez@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220406165907.1474155-1-guillermo.e.martinez@oracle.com> References: <20220406165907.1474155-1-guillermo.e.martinez@oracle.com> X-ClientProxiedBy: SN6PR01CA0009.prod.exchangelabs.com (2603:10b6:805:b6::22) To MWHPR10MB1407.namprd10.prod.outlook.com (2603:10b6:300:23::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 984707aa-896d-4831-3e29-08da29e95b40 X-MS-TrafficTypeDiagnostic: PH0PR10MB5795:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8o2isL1ZunZB9Xhn1yb6xS349M8QII1Cj7dlrxigEE/RfceB8BlQMMMRh8gPr6eZm88MYnmlhBjyGdMNlCAkqnOuhcbc45z95DL55JNCZ4C4e8Qb9zT8mdQ7y6ZvSHO/O5vIgPZkKGoRc0UJ2vCWZ5XmS5pCrA3qby/OQJ0TRR2O0DtkCM0OAxWjkGccLJS3ScjPjiOVHOM1xk3kQzd/JsDzY+9yNFVrCtvyQWMZ17krNZEFfS39vp+KYMuOvmCz+K1SIuDd/JQDdAVCAT6RR4v/1ciwmJnfJRlUXMTkLGgJAwkKe333iEIHGAy3v/3GTTQMNqTpIJ3lL5UekjzEDOVkJZNaS8kA/uWoeDhAUFhfbA7joWsCkznbmKrXqmo8NYQooiaKwkvTRxUDQ1AEhoMvX3Ayu905JI0EQy41GRHvDxUa/im4sxW3YEnBTh++/PalR8hbyRcgGk6fS9CVG695yt/KyfouocEbnYm+HwIbMrfUrinWktezlAen8fUF9jQ7XMMgdRDG5tT1Hp2/xfUomTcvc6rMdzip9CDsVWYXHtS9hKN7y7Z1At2guUh79gC0I5zWHvYGe/iN5xjumjBOLau66uWkmfmwP0JNvh2sPKy5Ei70lrRqB+JInaHXpobYK36MlTc9uCT481KEAdAiFMHbVKPL4IBUKF7AYOf05AjHydjtKA7fn19G/5h0MsDupue8j0NzYNH2xvFZcA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR10MB1407.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(38100700002)(6486002)(38350700002)(2906002)(508600001)(8676002)(4326008)(66476007)(66946007)(66556008)(316002)(5660300002)(86362001)(8936002)(6512007)(26005)(107886003)(83380400001)(6916009)(2616005)(36756003)(6506007)(186003)(1076003)(52116002)(103116003)(6666004); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: jWvFoc+0WSSSDSs7lXuFgj4vN+/BjbG3wu+mCNHkhe7XUzqrGeL3D2njKyj8BAqySb/qCgKNzZywSBtdR4y5cG2XSyKUyqqxkxpQcsHqe2sGFAtAEFKVoMThXZ2mEO7Ge8mSbrVCCEepP4pkjrhX2juXLZYxKdxvO8PWKZbZFBgj/nJuubB4PBxJEa7pgqpMSgG75cdBnJiGJ90S6i0oLYDbkdKA8MIJiEWh7YwFpQ2dJ1YJDameqkCOLpTjqRMVmKFbVujc1U7KIFITT1BdQRN5XvR763qfsAfsw7KTF3hzjj1Gs8FcIYswMbH7r/PCIl0yTbN3LBX608kMq+qztsP/5EeU6zqNWTG0cHNHoK/mDYR2nAYscT3Ch/4n2Hl/ylGPX94IeZkvvEsSCGucWHrl7wuiWXizdNpf8G24aJlVTM/huN12EOFHdaqvlwZPEd4V/M+5PtTLiMYJbJjXi3ccanZcW2nig7HaVOFsjc+Oko1PcDwkj4cHGlp4EPPNKIgGZah7IozlrV+sBZ48hiXYDYbYKlLF2iH2WAtZ5p9fDpAfZ9hW6+GLfo+hwiHCbrH1oI7YsntUIfvtqeEmfwERIbzp7wnBBmQlzP7J69NSCnRAv4iPsUFWQpPh20I9p2apNzx8IrJEzDOVQVsSmJsiKYbWIku7qJNrwoMHuCmyd9cA/ln6Jqdur0lk0Jg/j38uUOaLDztFntWbJKq9nnU4cExfA7m2/PMv6EFiEu1/N2ZdcqzPb743mnrz74lOC3JgvRke99uTpL/yX+W0JRQrifop9ENPHSgqBLnxOEhb9DgVxFMvp+n5PZy8f8zJG+oJ8NrQi7jy82C34DDq4P1SRPAd68gzgWLDF/NvmGIb+jBcn/6hHWDJ3F8DknNGYfD9+56Z/rpVrCnm6EowAq+XZwPWExVfE4MWdKljH6F3avNS/xDUsuWVloL8zEXhKf94WH4BKpeRX8RoK+qFZJKrX0cZjVferZyLiBBWieh6eGK9iRZSZUW75/PcYvwRhEctzKedxxihVO+cydWU+TdzL0ZIS8Q0lkOxtw/jk5l0P3d9Fj95K5qhntHA0tPU7JESlf8KeNByXmkHpTvHWVyyvT9vl4W2FsVTzvzJs2QvCvRqNsa1lsq9M60WeFm4QPFC4bjygXG928kQcRNN77Tsz2oGK3NCjIXgGmq7qRgsJwQLu+snyuhoatK1Fz0NJ+1lKiZI/sa6TClh5lBqGe7GzMcUfNTuSSFSRE9+6P9s5RSVro7rkZe9ucCI5xG0kjQsuRW08S5SEWUGwysv9LZFR/HQZOrSpLFemxpDKw+2tlpJALrNwKoPrIr/U6qqdByJ7oCO2UZsbh6bZbaYfLc66pPTm1qyHqNabmPiwsaEIQ0TrmbslO5LBZNZ/GfvVVozZx+3SZ0zQt1PvtqoZYBDOh/aSPefdMLTOXmnFmHAUkb/lVCyI0xFPdzwXTLaWsrtoJhRuO/SIkzTwwAZNsw4o6kdYhFbgvA+d8Bn73Bdx4HCk1c5B83irKmrHSrtO+Tr0AQjSM+AmoxRoMj/n7yUAbGS/Phd3w7k4tii7k2ub1NOv6do315E3Vt5KnNShC5J4KFEIA4smSYQ5DkxCyhGEPb7qdu2bGIHvs2LA+13xrVRVIiwXaDFarXMfYX/3HbgdMVi+jAeAMRhrZWKhrRVqKj6oQ6rmQTOH7wrTcy8xqt8pkESl4rN5cn1wHsGNwey4eLAYgKhsbZ5I3N+uHG2pmfFEKQLP5+UNPbyEhar05WtG7u0rQoNCM2/d5ii X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 984707aa-896d-4831-3e29-08da29e95b40 X-MS-Exchange-CrossTenant-AuthSource: MWHPR10MB1407.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Apr 2022 14:05:46.4058 (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: o2Bl9Zavrn2SLPu/9VrJ34WRBaB89P2HiXmQJ7M5OvxGL0zuVY/7pU4C7BrcRUrM+zrB6OhdQKOWNZaMkOviVAZrz1CS/mHXTe7VUKyERBk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB5795 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486, 18.0.858 definitions=2022-04-29_04:2022-04-28, 2022-04-29 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxlogscore=999 mlxscore=0 suspectscore=0 malwarescore=0 spamscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204290079 X-Proofpoint-ORIG-GUID: wdEwax4vjn65jpgn44z9aEmG2zxwc3Jn X-Proofpoint-GUID: wdEwax4vjn65jpgn44z9aEmG2zxwc3Jn X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, 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 is the v3 patch to fix multiple `var-decl' node in anonymous struct/uninons in ctf-reader, changes from v2: * rebase from master commit 6716aa04 I'll appreciate your feedback. 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 +- tests/data/Makefile.am | 3 ++ .../test-read-ctf/test-anonymous-fields.c | 18 ++++++++++ .../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 +++++ 6 files changed, 63 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 f8cdf6be..2c6839cb 100644 --- a/src/abg-ctf-reader.cc +++ b/src/abg-ctf-reader.cc @@ -350,7 +350,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/Makefile.am b/tests/data/Makefile.am index 8f71fcbf..ee23aff6 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -669,6 +669,9 @@ test-read-ctf/test-list-struct.abi \ test-read-ctf/test-callback2.c \ test-read-ctf/test-callback2.o \ test-read-ctf/test-callback2.abi \ +test-read-ctf/test-anonymous-fields.c \ +test-read-ctf/test-anonymous-fields.o \ +test-read-ctf/test-anonymous-fields.o.abi \ \ test-annotate/test0.abi \ test-annotate/test1.abi \ 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..25c21047 --- /dev/null +++ b/tests/data/test-read-ctf/test-anonymous-fields.c @@ -0,0 +1,18 @@ +/* + * 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 8ed8ac1a..fdf49e90 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", "",