From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sonic314-19.consmr.mail.ir2.yahoo.com (sonic314-19.consmr.mail.ir2.yahoo.com [77.238.177.145]) by sourceware.org (Postfix) with ESMTPS id DD0E138582B4 for ; Sun, 25 Feb 2024 12:02:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DD0E138582B4 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 DD0E138582B4 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=77.238.177.145 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708862584; cv=none; b=giyW/BMpxnwffz8Yj1CX06z/Hs9WCa0E8WN7UA0itDlujxM4vuKUU1mtymgRGFIPqyvgXyrQ1U+KV6Ptj9f/lMbqoMlO7ENxuPJPCqp7svQBqB8bLAKIUbVy5Tzh2VhSaH45gFwz5rtf2gsmM9+wo+mCCBOGvbepwn093qWUY10= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708862584; c=relaxed/simple; bh=/L1L9r5mu3XQLp1XxbzWi/3litPiSA+aaPDbAxry+04=; h=DKIM-Signature:Date:From:To:Message-ID:Subject:MIME-Version; b=Hv/dJ9aRiZc7hgtw9wrBHQO+v7f03XDMkrnMuRA6TTe6wydKOFgl8QjaGclxANjnXdHDI7Q50njcjpah11KYSsDquimnGEzVWjC/JWAgXh3azKk1nhq8N3/vMt86jUlwmvmQdnxZj6TueoZ+i9+rpyoykRAHUrzeGMS4B47Dp08= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1708862574; bh=/L1L9r5mu3XQLp1XxbzWi/3litPiSA+aaPDbAxry+04=; h=Date:From:To:Cc:In-Reply-To:References:Subject:From:Subject:Reply-To; b=r8l5Q3lVmavEdIVr1aZlzeXapvva4P6tfpLt5NahCAkks3S6PMhGqJtnD6s8Rk3pyyITwATU3UpL3JutDNiTNWc7jNAYnDOngqjmZYW1QhWpFnsKXJBXWKC+lLxaqmRgdx07IujKPgfCS9FRQOpPXxN1SA52X2Gm+pbdVS8A0gPvwkocDtMvWlyxVsvIqiGP8nHKf+Gd8r95iUO+VdZOSWwVfjzejt2qWM7uqYBKedSA4c154DCv1N8DWRDcGcbv7mR0WKnp+PPKmIUZjrQ8JfLQWumAhJWT6BA/QTlJCCV+BsTnVLBdEeKqLE8T9Cy9RUtnTZDKDMTO8xDytIdPBQ== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1708862574; bh=yefVGAI02XHWoOrmKwIpbM6Ng1KflXQrXbTcenzYWfc=; h=X-Sonic-MF:Date:From:To:Subject:From:Subject; b=AqHu2b5e5V4gR+/cmTFOSt6tntqDMiWk/3t2XCWtnsgafw702p2z2w2X+9KV1z9TjhmNwTrrP0BbPbByDnUdMwqfsiW2eBDb0zx8N3+gCOB1Nq+HCWn1ZgLck3INOGV9mMuZw6cpnT3aTkWwaIjE8TAir3CnoQX2I7nt0QcTMdzd5glUHffeNpBKODSmii6Q980LjPYETSFGghSZ1DXtMTY6yzziVttDwXENRY77HyJV2KfJ68v7Mmo4FGd7XyWlK7oRJiu1wI+MX127F5i4GONMhvw7tSb6n7iXNdLGtwk0Tp9SJmGXxUNB3WFWD63AN3HBRtXcwMMmZ5I1iZGl4Q== X-YMail-OSG: 1rdov6AVM1lcbDVGDTPpWa6Dsg3fiJmQGafibkwRxAfZaWFiTQ3t__8_xeHchi3 N3fTCjaoV02Yg73tQ9SlrgHr3Df9rfJVSHgN6lZNmHa8VDyS5DKXTY78SV9F.Eui.oIh0rS5fUHa Lgp2._ZFKP03BFAcuilayayGES.zSc6L4UAsKLkalvDyU5_fdWX.o4vvkmGXDpZuOqF2BGy5T1Ch foY.H52Kt8GGcgd25g7kGzAMB_GmpCtfwOXn1XP.4Jttk8AEz6w8faUKnkdINdGbgm8Mh7yFE487 DurJTT6rsFLBm_L2AhhrmJzGCySg0QALzQrB3gP4YuARCBHk5njXe4hUIdEYzDltxFCabel4xJ3n lcvWdv33QvAWjCGONHZqseVkK3U4Ig6C1CyZXbCE4MhEzVB1zyY4fCz680auahPfktKDZE81YxXP DjUl4NIqxycJFx.vfKuXzE58LCEmsRwhZQKEqMc8IXyAGA6KpOAHQyXZJg1TtUSu4FzWKniG0ZSL LG02YJVc2NUEI6cPNUt6.lhSdW71MxOzmppMSEaOEzQXplhIjNYQNC1OG3xlVwGt5y71vn7p0shu wDRv8iHwa5Xx8L58LtZGKhofvIdkv33_wLLQJ8ao7ijsvEVcWxMkQ.yjb_qZBGY0TKVHKxXlvPhK 476hwa30ZjISLZGocTui8eS6bu3NgIBIguf3vLwckUj9O73GBSCW2aO2YnAPMtmSIv0St9TNeSPR WbnG7tjiLBKV6q9jZl3.yPBXRTqnDFAIqCAP5rFF40F.6lP62u1G8OByAbweowg5RzLZgeS6EMi7 yhEb7msLFHUHnvzbSDyIL07I2jK9G_YZsZEgVlXgRDB0BIUlLA3zIRV8HXKQk8tximrp45aDkWSJ wVBOS2H9Q0M.N9sA9.Gn6tGBBoB5gqyctmyB.e3ole8rLSgvh8ciFGRRCJSXV5y_f_CN0VdDwZS8 2ISqy9y5MVO0gyKRUSgOPDAKiZ88a0sH5vuuGo8E533wQA5MTr1JoZXsmC1uzqOed9eJBRqbtIx6 J16iBug03VNW.S2wZbpBJg.vvffETSKtDKRpBhG2irXH4w390IgHLEtkNw9hNUoG2ZONh.Jm5vyn 8rF7bngqXM6p9pXLZBdWc9RBfWOi2dmfJFOgVKJvA2YadLGKi24qrnmCtECXx2o.E76omYEfq3We Mf7a6XbgQ3A_h89x9KdHN29wAfIF4LN0AUeBfaBq0arCDHLYMbTTVGNY5uwJdqOdQhhFEsff._aJ YEOixkgm4l4tWH8egV2pkqxKI5llbvlXwi4AwKpEGWxGmtz9ZjOn26BCEm3IRIxUy_2.5ToydPoh 1GiQnt_oM9FA8__jZ1nAZosF6mR49I4H_F9SINEoBFFu8HTYHFkRq2Bs1GGM32G89HVa209Nj0oy oJOyYPOmQzslbDtxGqjr6DBKCOWqbg9n5VMBXFU4sUzAqZRPBM7Y99JS.7LC5bNf2NEQ0uVWMTG1 t6PlUfftM19i1uF2KDAI8cWgommTY4vj.d_3F3BTtVPkpfkncWNspkxUK6oqM2t2kPhQJ7Z81LI9 kNvq3j_gn8QwLVL0Rk5ONuhae036uI0gzSCHOHmOXvlMZ0Wow8Y72dEhsqyxjziep5c314jLjfYi va1v0xScXblMNNavC4aIuTH1IS0PYXY5EIUmo.8fxfdxxX9YaDB3ZJuOao7bX3fdb4WY0c.OSEdT g9wpWjm7BFc3ue8zPmJPprzEoR8TMjogogz6cfdfi0DLxXT49iKN.nYL3mgI7BpJjTgrd22hX176 v3IllA8OCT0pB9eHFok3VIHCp4MbbDtni.KmxuFT2_WAUZ0kGGsvlVviEtFBtbVVMKfEWvaMds9z 7O5UHqMXQB4CjiO6swhTnkkiRceQgyIL0mPt5V9.wGCimmAE96tQisQ5Mwm4j9h1vf9n5WEkL_HR iQdS2Gplf4ZXB8gpfvP.A0lpxcGh..c0X1woox9UtZsm6JSuKVnmEim74rUfd7N0Mj085nxB_PyV TkoopoEj538IXp5SjFmE441Spze1N5MwWmX.94eNpechyGHLSMePIqvHltAkNQP.uhR4UbGMi6YU EkXfE00Cf.Qy3.8WpjOXC2gcMGzH.LxdjChp.88c1XdXitK2KyLIwTIQn3KAV7qdbOxqxnlzzZz8 h0rjNBLLEI9Gqv6_g2t6VnSoI0jvap_HFotLYSSAv.bN3PRzsKKPFXySWkCgPUcWwCkIAMWUkH6j 6Vt3JhGkKX2Ph.bRO.ob4DVOJv9hp84qwJSDij5k4xkvrMfrA X-Sonic-MF: X-Sonic-ID: 3b420d03-0cde-44c8-9edf-6ddaacdc201c Received: from sonic.gate.mail.ne1.yahoo.com by sonic314.consmr.mail.ir2.yahoo.com with HTTP; Sun, 25 Feb 2024 12:02:54 +0000 Date: Sun, 25 Feb 2024 12:02:49 +0000 (UTC) From: Hannes Domani To: "gdb-patches@sourceware.org" Cc: Keith Seitz Message-ID: <1690606586.506281.1708862569738@mail.yahoo.com> In-Reply-To: <20240209194545.31497-1-ssbssa@yahoo.de> References: <20240209194545.31497-1-ssbssa.ref@yahoo.de> <20240209194545.31497-1-ssbssa@yahoo.de> Subject: Re: [PATCH] Fix comparison of array types MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Mailer: WebService/1.1.22103 YMailNorrin X-Spam-Status: No, score=-8.7 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,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: Ping. Am Freitag, 9. Februar 2024 um 20:46:35 MEZ hat Hannes Domani Folgendes geschrieben: > Currently it's not possible to call functions if an argument is a > pointer to an array: > ``` > (gdb) l f > 1=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 int f (int (*x)[2]) > 2=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 { > 3=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return x[0][1]; > 4=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 } > 5 > 6=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 int main() > 7=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 { > 8=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 int a[2][2] =3D {{0, 1}, {2, = 3}}; > 9=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return f (a); > 10=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 } > (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 =3D 1 > ``` > > Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=3D15398 > Co-Authored-By: Keith Seitz > --- > gdb/gdbtypes.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | 13 ++++++++++++= + > gdb/testsuite/gdb.cp/converts.exp |=C2=A0 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) >=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return true; >=C2=A0=C2=A0=C2=A0=C2=A0 } > > +=C2=A0 /* Two array types are the same if they have the same element typ= es > +=C2=A0=C2=A0=C2=A0 and array bounds.=C2=A0 */ > +=C2=A0 if (a->code () =3D=3D TYPE_CODE_ARRAY) > +=C2=A0=C2=A0=C2=A0 { > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (!types_equal (a->target_type (), b->t= arget_type ())) > +=C2=A0=C2=A0=C2=A0 return false; > + > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (*a->bounds () !=3D *b->bounds ()) > +=C2=A0=C2=A0=C2=A0 return false; > + > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return true; > +=C2=A0=C2=A0=C2=A0 } > + >=C2=A0=C2=A0 return false; > } > > diff --git a/gdb/testsuite/gdb.cp/converts.exp b/gdb/testsuite/gdb.cp/con= verts.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.*" "pointe= r to long int" > gdb_test "p foo1_5 (b)" "=3D 15"=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 "pointer pointer to void pointer" > gdb_test "p foo2_1 (b)" "=3D 21"=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 "pointer pointer to pointer pointer" > gdb_test "p foo2_2 (b)" "Cannot resolve.*" "pointer pointer to array of a= rrays" > +gdb_test "p foo2_2 (ba)" "=3D 22"=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 "array of arrays to array of arrays" > gdb_test "p foo2_3 (b)" "=3D 23"=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 "pointer pointer to array of pointers" > gdb_test "p foo2_4 (b)" "Cannot resolve.*" "pointer pointer to array of w= rong pointers" > > -- > 2.35.1