From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sonic307-54.consmr.mail.ir2.yahoo.com (sonic307-54.consmr.mail.ir2.yahoo.com [87.248.110.31]) by sourceware.org (Postfix) with ESMTPS id BD5A13858D28 for ; Wed, 20 Mar 2024 17:26:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BD5A13858D28 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 BD5A13858D28 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=87.248.110.31 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1710955566; cv=none; b=vhQVBfWGs1hIWO0y748zwVJao3H8NPIhOCieNgTlyYMwUmMHHNFHPa8fL+D/8p10FVNE2eOKyN4OO7eavWb86fO0hykNWq3XPxA30HUaVj/A5vLtTdFjWwFqWWazGW9KreFvlq+9KSuT9rADZdcx7gBh22d2exHY50/Dkxh3PRQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1710955566; c=relaxed/simple; bh=IQ9QI3Hx+0Zzvfgrxx7dTUFrL9z4SXcjuBoymolStDI=; h=DKIM-Signature:Date:From:To:Message-ID:Subject:MIME-Version; b=GmNbR3QThQa10PthihkL47b3UrCpYfOrMmSWLcwSgErlnupqllp5xz5PvbNFqIcbN891hg6vSSElYT4YHh3+LhA+Rvuwj1RcEttzMZ8p9QoGlZS6Dgmw8YcU27Edd0mw06ETOyRkfJ75ul2xiXYwdGkuWnmhwUQGxNSVMTbC5lo= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1710955561; bh=IQ9QI3Hx+0Zzvfgrxx7dTUFrL9z4SXcjuBoymolStDI=; h=Date:From:To:Cc:In-Reply-To:References:Subject:From:Subject:Reply-To; b=me7fgN0WMY9yTy+Bd2USfTE18OCN83Q0Gv8WhkjERmrW5mHya1JhW0W6l0eGV9YXq35+T/VGgObTUCtMV0TFxW/+8quxNziIJzbtqyfgYc+NWpY3SEINQDlK29HmiFwnQvMdgpOkA6SpsXfdMJHHCIje+jN6/uKfQlXn8bNGeTQ1TKBWw+hpfuF80SHxOlPXbhfJrQnd9uzaLTO8Fkooye33Z/bXFXzMLfpW3UWFdlHyMA1GhGrPyO6PHg49CvBOORpQiqTZY0twDw9shgvdZQn1sDcw35RYzAmGGQdzz3Kewzp+eFnATkuBObuVIL/tkUWUayRZMZsXQMDmiG+kQQ== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1710955561; bh=MsEypSCRtvHTgtu6Qelf1vBnOPR2V+u/tYOzjcXZpQZ=; h=X-Sonic-MF:Date:From:To:Subject:From:Subject; b=nPWMigFXaA4qSBlj1Sw/6ZR/KYayLb8p8Iq5VmKrLvS3mGoxVj4+5jtcTDGx5e6MSMwfADHXdui+/lUr+VibhFdj2ZQQYh1c5HceZPMah+z6YrwkdnDeo3Fed4v3R8be8r2FYe0r/XRbbKAkDj5CnM/TbrrUr/yGC6BdEneiPmkoRqyJeLjLT3GmSCV62Zur+qh4tvXec5WkM0NYcFfvmbJO/qJ9RXnetqnOXALAuM//5cYe/nSP5bYVmcQxoZUlgkuojfMUaWmTYRRv7LSGGqSZuGW1ZJznfR2YPy10pLx1mLVp8D5w63MLWRRexrdiFisFxdkut4o0i3S3BiS8Kw== X-YMail-OSG: _58sV4sVM1nkh1F.9rYeKYyeEtZCVc6JU3jU.YF9e5NTyM65tdqRSErx_6Jh9MR vaRur7V7WFQqTsYaAPk4VaD.M.nB2XtC3bvMwzHqGRGd_6IEANtEhDCX5huPUUBaoQ_ZJ02Q0DsS oWuQIQkOoVZSS1v2H.cLv91BfJsJq2zVdsiSm4SRcngkgb0jyc9tdsdLUDa1Gfgjwv5vvS7oSwCc FsBRQwp4Mg.TIMRGfTVgdmz.QHJ2tWTgM7EVD1wNywoIGRuD.Wc9Gjnkepr7_iEbQO4aF.YMiaDa N4mKKVII_Hp4AOk7er5cQ86H5vDEJawms2T7I0MFGO.j1cIULgsH4cImCz1rKaOMSeFvTIRGrfuk VJx7uyHl4nfP9lg5S.JlvPH63Q3I62B20.Y89a8oEUMMn_DleF3nEudDDKuCP.oScJUnxrZgu9CV EQgpbz1ndCMBEMGDGY2MOntNl.X2HUNT0v4bUduieuveHhVq9OPNt7qRikSwzSDbxdq6wxCJc3Kr cm3kaihHFlxnkBpJQ9yY02D9uDTrluTd4QDOSMU.R0fQ4Eeqh3zmMTnvV30dU986VOP1WG7fIBAU jt79yrpwE3K4N1WAeS7LBNVDNb5OnK7NIxyWSQGCDxQ_hvRbo3gW6d_AAzlPD8M7uz0ZvaR08YJf YHTuwaRTt0lbrduuiVsXDZQGNOZPLBp9JueAYjHBHvV8iH0XlqCf170Qqrql4.cRLmyDZzaHoHEA HM6WYIbBM.UNXmrICVBHVTjewvNsS_sR3_SvfEZUiMjAJC9vjjjaqMdxs.GkN8ghhZwBh0pXimyX ..lnno2KvL5tDVurn1v_UTX.sTv5Mz3uVGsbub10HnExskTscf.AN8VJAofh547ArKUv_iWW58uB 84pAjAOv_s3_RaccOIgVR8.QguZhLA6O_IHD2plyKLXv7Tmq5NW52b3JJPn1ORkmmNEVZiX6l2al jAwFvYt9N2IVvjNDx7SMnR6rtQoszz3PQJV3QB6P_q497ECjLus0ydRxr2o6PO.ZA3QeXoNQRKp. 6yS70C06zgGtTTkvEyHDnC_KgzSheZDeJrmw_doWq5LPhJ2Xkkd.dwwEc07TgdynY090sxOW6c2b TDKZERv0ANO2y4IYumYdxJmXcfdeD4EIQ5lYA8onCMmetyX02K9qAr9JKRdsJhQFcrL_QMd76Isq f5pKPU1RB9sXWOuaFBlIq7cOOTtnhWhvsvN7CmrxLTmKPptnB2f6eIx_OmMyiSoWAzux9zRlIm9j feB1.Apf1vUn5DX1uQZUBPOuEYITnjZ9XwQMecmemM360Niv8Yw7_rCMPbTze7ByxavgdsIV.LUK 1h1OHTTHyG7xR.V5b5si2sZLOeAOnFbGxG2JsZTHECZoeoqg9NhFFgKLM6gm8MOupSsM3VRCX11E 4cKqsdOLCq7O6WZ1F66_sgUWbFdEaZ2djpuNc90y6QTkfWAeCZoTwFYW0iOVU8.sCNJqB7ahxm_l dA8Qd6UlYtiq.vvWAtB8.dlwkb5I0FhfZuCLhl_ikZicHLTlXMhFQ8hMcSYLK6_dWQ_G9LV4930b lWYFY2EHMVmTAKy0GUUdTNwRAqLOXuiXQ1n_Nl.6Y7jCp7Qyt2GbpR4LlvAt7YAM6OSv4wbe71Ip JjLT3AV2Sm9CZOKmZiVO6qGNFI5kWa.kUMC3XPjHr0quIo4U2IaFb8SakkGy7oeqaQEMmQku0OVj vGqGOeHyB8hVrd0_EUj.do41Bd8985D40SfYDX.LmyuFEcsFoycYU4368.yM5.uwTC4lB3bId3fR 8i4Rn8Wac4nCYKUZHrpTt3eHZce8t687aVJwEDBmNt.tEB4g7RrfN6L_WX..V_GhxpVIk2ljK0SP 2MB0n00dmCpvM.fXGux6L2gBNU3K.tYDEEP8xguhtznIvNMQ48rXyOx7Yd4eWkQh.RpvPvVH89Wr uR6HrLrAcvhIABamIf6jdYA4fVCvPZUO1ZYG92I6KO2Y0tyeDEi6EpGJrFiIRjEyBiC1Ork3teB7 Hos3Xe2pf3T3vfXb9RIj91aFNjIwugSEiM.jdYAwRfhEjNyGjw050JQjRIV2NgHaCGT61Sa._hZp S0tIIW10CaXrwZ3c3ZWInZdXEVMVhLholnfA7ZvGZsCfKcUll3x.ij1tomlMXdFhIKVlxyLfmWQ8 5qeg2Su_gObQe0KBuq8.OPMFrTvFNKqpvHuOBRvKZTf_kw.l0BKVZZDqTctl004n7idjxBpSjS2m dvJks2UUZuRk- X-Sonic-MF: X-Sonic-ID: f13d0a1b-b2a3-4192-9560-727816d708ef Received: from sonic.gate.mail.ne1.yahoo.com by sonic307.consmr.mail.ir2.yahoo.com with HTTP; Wed, 20 Mar 2024 17:26:01 +0000 Date: Wed, 20 Mar 2024 17:25:57 +0000 (UTC) From: Hannes Domani To: Tom Tromey Cc: "gdb-patches@sourceware.org" Message-ID: <745860198.11199509.1710955557445@mail.yahoo.com> In-Reply-To: <87msqsg7fa.fsf@tromey.com> References: <20240320160844.106-1-ssbssa.ref@yahoo.de> <20240320160844.106-1-ssbssa@yahoo.de> <87msqsg7fa.fsf@tromey.com> Subject: Re: [PATCH] Fix casting in-memory values of primitive types to const reference MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Mailer: WebService/1.1.22129 YMailNorrin X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,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: Am Mittwoch, 20. M=C3=A4rz 2024 um 18:05:48 MEZ hat Tom Tromey Folgendes geschrieben: > >>>>> "Hannes" =3D=3D Hannes Domani writes: > > Hannes> It's currently not possible to cast an in-memory value of a primi= tive > Hannes> type to const reference: > > Thank you for the patch. > > I think it is ok.=C2=A0 However I suspect there may be other bugs here. > > Approved-By: Tom Tromey Pushed, thanks. > Hannes> Fixed by ignoring const/volatile/restrict qualifications in > Hannes> value_cast when comparing cast type to original type, so the new > Hannes> value will point to the same location as the original value: > > Hannes> -=C2=A0 if (types_deeply_equal (arg2->type (), type)) > Hannes> +=C2=A0 if (types_deeply_equal (make_unqualified_type (arg2->type= ()), > Hannes> +=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 make_unqualified_type (type))) > > This code seems slightly weird in that it isn't calling check_typedef. > So, I wonder what happens if typedefs are involved, for example if you > did: > > typedef const int ci; > > (gdb) print (ci&) Q.id This happens: (gdb) p (ci&) Q.id $1 =3D (const int &) @0x3cfb8c: 42 Because check_typedef is called when the reference is removed: ``` =C2=A0 /* Check if we are casting struct reference to struct reference.=C2= =A0 */ =C2=A0 if (TYPE_IS_REFERENCE (check_typedef (type))) =C2=A0=C2=A0=C2=A0 { =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* We dereference type; then we recurse and = finally =C2=A0=C2=A0 =C2=A0 we generate value of the given reference.=C2=A0 Nothing= wrong with =C2=A0=C2=A0 =C2=A0 that.=C2=A0 */ =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 struct type *t1 =3D check_typedef (type); =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 struct type *dereftype =3D check_typedef (t1= ->target_type ()); =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 struct value *val =3D value_cast (dereftype,= arg2); =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return value_ref (val, t1->code ()); =C2=A0=C2=A0=C2=A0 } ``` Hannes