From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sonic303-21.consmr.mail.ir2.yahoo.com (sonic303-21.consmr.mail.ir2.yahoo.com [77.238.178.202]) by sourceware.org (Postfix) with ESMTPS id D92A53858C39 for ; Fri, 9 Feb 2024 19:46:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D92A53858C39 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=yahoo.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=yahoo.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org D92A53858C39 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=77.238.178.202 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1707508004; cv=none; b=xq6K+7qAfAfzvfqtRXC5mhayQr6G8m+SSNsyc9cY7rC9uMwRL2kynQxphwrrP6UY855Yp0Wk1u4lEkV4G9DP1kd+pJVIukPytsEJ0uk1eKUdmStcuYygpnBHcQqn52RZVvfl4GojJ+ZCZgRK5B5gRnlhHQy9YecrFAdRtVV/4L0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1707508004; c=relaxed/simple; bh=wjgZkPw+UnbXlF8xShDwcPWBClMecbsQT3oODwTIjbc=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=lJxkNA2LZ4jlwpDKlLx6q1zOmUsRb+kSUDwU+f9oBDOnG4CVvI7Zdu7kkeGp6BYWgQy5hgthAh2QmDGs8pm4CZ7KGFncX0RZjWzOOPpINzf+RsMC0YtMk9fLNRycUAyZ2zjtpnzXS2wK/7p0IbibqLnQ4GrjTs+St2XF69JpF+k= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1707507998; bh=PB0ylOl5UXmBqXuK63/lJ45laXr31OduYRABzPvvGcY=; h=From:To:Cc:Subject:Date:References:From:Subject:Reply-To; b=MA9kQLrjD1hep16wJ6oLVK8cM0imLCQSSE6DGP+CBr2IRHW7TYzBBKYr2jTITMaz6D3iEfhJVHHDxjnPKXcYCKR9/nl9HD1B0cdtAUmwz1FfujJ1oLnYF1BRSDX5+ktvt/CLEL7oIW6yViiLuyWv+AmucW+upOodq9AKoAm1Y0aEpWSx6xPqKdH2M/JsgfGdOXKmUne6hAvUoS2ymHf/xaj54Swr2Y7sF/VhJzRHYpBduECUeMr8pONrM106cuGGQAYb/cQhd0nU3bG7vWOdsHih5lvUFdKf4Knnk3BxE0+h9GbBa40Wwmxyiuh9Ig7A1o0c3NFVw25a2QL9rg8S4g== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1707507998; bh=Hq8YbaBHSiKefpVhnPUjqwunNmvuo5hXFR3qVZyo3AD=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=H90o9maB1AHihfvm93hIO2Ifvs771NEW0K5HdMPwwMUqHwNhWC2eiGkJpvNf+Fp2O4xHgq6F7vQQq8MUP04kbLWFE4Ln55MGOMYw4fu7yJXFTchsKZT817CSg20ziVdUL3EWvOEAUB3FczGqy46DcKQGQwUjz74bozYtwpSNASt6k+QYJIxDTohRxvXo5nRnaNc//LPGgcRPG577kkt/4uP8e1rkUJWKv48mfYRbHteseHr4KQmTiSMw9oQJCcJIzVxtVXj+jvCPnCb/6QmmOSsMOsPxtDQuvGVZJjoe29Iir6tmYFAkF9GBmaFlEbtnRlooMdYwxu1c1N70iSf/Mw== X-YMail-OSG: p6fdL00VM1mgs1flgnKpDsSfSLudOzfkQLeuDL3IcYnVcEKcdhbi5E6wAYV5pc4 gmX.IIRrXDVdm1qlSaYzkik78al44sk1BehNZLBKT8y2mRKcpbSCBiUSFpAeRzCfNOd5XS7h5U1t OSKQ7MMClPlZp2ncDS74WnAR.GT0vxO_5Wn8o4OZrpooKNYRyMK2zIC3OmUBIYRr4febzWWHQfDd Xz1HyLhj6RrRh5LszpvHzcUflyqE8NQlajqMysJTMayb8P2RqVdTKo52xiRtrBKH6OSEKo.odgNw jDRQpK.84j9gupVqR9D94cE8iTA_jS2zcpE2H4odlnO7ndU3QMhv7hVBrlmxczlMKrsCU1W1xp7s qayJUikDTfbU3CUeNiE0JdErmx8CZDTkw3Qgbp6x640bOcfQaCIiAaocSf_sn5H2IktDlscw3X3m t_FsADn0_dpDnHuq5fy7wj5okW_3Gjliquu2DLxpXMkxcqYlIoRelEV4s_MjbHJlebQ5WEzVcL18 PkmkFAlN4v_b33WxToLkaLVdu3YTMXrOQlz2Q9ksiIkXFIHxK2alPYjPFUhWyF01lv0K8sVVBrT6 moCJ7ndRzWh_PZ2lzYP_qiz_qJRqWqQ_ezfuN76f5HA6IYmi2DRExkbxPiWlj3uu0m4KydPvE6nX BQplJOr5ysd6SVNGiTaL5BoCQBBbZ9MFYIolQcFo_Mg8n3yhrNSY.mMem3jB5Fu6athp1q6Tro7_ TviRJlNaTJmT23inrOixAL49IXNxBp0AQLwxBE07s6_Y64SzMLG5M_jsL7H7Fy05Cpts31pjeqj. 9xykiB2QF7Tuyneu_u1w0EMcTapmocjiFmFw05JI0JhpFtl5zrpMcsBn9SqtwqROBWgoh0totdKE 2QwVgItM_kzqb817qPfcA5Y085FVkzo64SrTX_SSKSYS0getHEyqtD7SWW7cnC_Sug1CYN4PX3Wu dJvuymVy2pnF.Hmzmw.d6r80vQ169VLUCG_bd1ai9em50_MXknzShZGim2h6lya8SywjZKYENwaI OP6HOI4RCUn.85emmtAHHI_DJuEbJ4.rfiN9DHCGHUUaJz_JYiA_Q8Ih9kqYDkZ_kQ_Mi4keBX3d HV5sGcj5pSpY43A790Fjpx9K159miYJKBTwXBjL2UF0iegh6VpvIAeKvCE5T2b4CBSQSZHYqhdwo X6sbMXpZFAYkZX83KPFcNS.20IaiOC4Ea.UvQCPZJK5.cYHio1pfTP0nIlmEy3d.ZGDy65ozl0.N poQhmPVDVIprt._2cqb7054p9L1LkwoMqnf7TP9nBDSLAR9f1.lyIbmrwjwkFPArpkOt.15Oy3ZI U7rq9KGqFNYbY5rEfrwRb8QZBRnPgaeKCgCBKKFuQZwApj_3E.isqlCWGbuHne_m3lLWiFuaFV2f kBDABqx5LDvrxVyRy3ac106edL9A2SxU5B42DRPzQyZG5MuuvTCDhuprf_BcLTyKyjFSxVq5K_bu XLOTs8Jq.T7z9x7Rsu5gO1zvBvksxO0V3Mc46G0T0C3qlf.lzFt059ltJSsZmyrdq836dXGH5aTp DFXTVr3vBMFsjF9ESIFwoGGL0_Ql5qrjeHd43gU6Xel.8QQwjt2foYN2BDCS3sG_t2oAvF8YYszJ mR1mqtyZ2zIcuIZ9jW2FtIKstan_KgkCfXAl2JKmpBREHX_i87gtK3CHq086jojlOC1Gjsh29m1C 3pvt0iIQXx4Ac5.QA1gAj6QTQ9R68CUO7eBCnu1iTH5uoiogxB6i.E4E2rYRN812smFUVcyX9Vwp U1copiHLKfnD.OiJvn8TRquRX0DOfXnWf.M9gE2u8S2DiV7vT.VdUW.8I7OhuaCMsKkDuA7svpR8 4TFMt.fUpAkIxI1N47h2dHoISjxS6DlwEDVRyqAdUeMJOOXXqWSmhe5lq.OUI_4lusdO_u.fYaJd okMhRJfXRmvmeS09V4X8eviz8G0NvijD_iCS2HtP42ILZVQsVheZ8BVybCYUhu7Ze0v4Lo3RMF5Q 0Uus3LKB0HkpdNOkHS_yTBgsK.FOAt1oRsq9CMLLbETb9ELolP.62XP52s7hjXoqsswcvQF49nFP ahps35qDSUEapaEU0aQYO4HbOXF27vbOAH3BXuHD340HfGuKFW1silspZIM57KnSlfA8Mlj69ASx SgqnMqiZinjIJ6PzIQGrBXXHHYuDIf8LNimvApHfNUV68BkC4t9NYaeuzLcAfnNwdyxN2U7d4ltY dR9jpqOheG01GxZ_nRU4lBhLE.OkktySIHJjMk_t48guDyQA- X-Sonic-MF: X-Sonic-ID: 8a1b1412-3098-4a68-a2ed-7d47921c6069 Received: from sonic.gate.mail.ne1.yahoo.com by sonic303.consmr.mail.ir2.yahoo.com with HTTP; Fri, 9 Feb 2024 19:46:38 +0000 Received: by hermes--production-ir2-7bc88bfc75-fnx47 (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID c9365f1eb07cfeac9eab3ddb14b97f59; Fri, 09 Feb 2024 19:46:34 +0000 (UTC) From: Hannes Domani To: gdb-patches@sourceware.org Cc: Keith Seitz Subject: [PATCH] Fix comparison of array types Date: Fri, 9 Feb 2024 20:45:45 +0100 Message-Id: <20240209194545.31497-1-ssbssa@yahoo.de> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Antivirus: Avast (VPS 240209-12, 02/09/2024), Outbound message X-Antivirus-Status: Clean References: <20240209194545.31497-1-ssbssa.ref@yahoo.de> X-Spam-Status: No, score=-10.3 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,GIT_PATCH_0,KAM_DMARC_STATUS,NML_ADSP_CUSTOM_MED,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Currently it's not possible to call functions if an argument is a pointer to an array: ``` (gdb) l f 1 int f (int (*x)[2]) 2 { 3 return x[0][1]; 4 } 5 6 int main() 7 { 8 int a[2][2] = {{0, 1}, {2, 3}}; 9 return f (a); 10 } (gdb) p f(a) Cannot resolve function f to any overloaded instance ``` This happens because types_equal doesn't handle array types, so the function is never even considered as a possibility. With array type handling added, by comparing element types and array bounds, the same works: ``` (gdb) p f(a) $1 = 1 ``` Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=15398 Co-Authored-By: Keith Seitz --- gdb/gdbtypes.c | 13 +++++++++++++ gdb/testsuite/gdb.cp/converts.exp | 1 + 2 files changed, 14 insertions(+) diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c index dcd7321d979..6c0d20b2daf 100644 --- a/gdb/gdbtypes.c +++ b/gdb/gdbtypes.c @@ -4202,6 +4202,19 @@ types_equal (struct type *a, struct type *b) return true; } + /* Two array types are the same if they have the same element types + and array bounds. */ + if (a->code () == TYPE_CODE_ARRAY) + { + if (!types_equal (a->target_type (), b->target_type ())) + return false; + + if (*a->bounds () != *b->bounds ()) + return false; + + return true; + } + return false; } diff --git a/gdb/testsuite/gdb.cp/converts.exp b/gdb/testsuite/gdb.cp/converts.exp index bf608bdcccd..6ea21fec563 100644 --- a/gdb/testsuite/gdb.cp/converts.exp +++ b/gdb/testsuite/gdb.cp/converts.exp @@ -48,6 +48,7 @@ gdb_test "p foo1_8 (bp)" "Using non-standard.*" "pointer to long int" gdb_test "p foo1_5 (b)" "= 15" "pointer pointer to void pointer" gdb_test "p foo2_1 (b)" "= 21" "pointer pointer to pointer pointer" gdb_test "p foo2_2 (b)" "Cannot resolve.*" "pointer pointer to array of arrays" +gdb_test "p foo2_2 (ba)" "= 22" "array of arrays to array of arrays" gdb_test "p foo2_3 (b)" "= 23" "pointer pointer to array of pointers" gdb_test "p foo2_4 (b)" "Cannot resolve.*" "pointer pointer to array of wrong pointers" -- 2.35.1