From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sonic306-20.consmr.mail.ir2.yahoo.com (sonic306-20.consmr.mail.ir2.yahoo.com [77.238.176.206]) by sourceware.org (Postfix) with ESMTPS id 4520C384AB58 for ; Fri, 3 May 2024 20:35:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4520C384AB58 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 4520C384AB58 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=77.238.176.206 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1714768536; cv=none; b=e3pfJpPYsWGqWSnQMHqIWCAKZZOmw4TfJsmWbFT1CIiLGIK4c9CBGy/fjYCf2zo92R9Yh3Y3bu6SAQQouvH6kTAXVTjIYMqhdFXv2ogRRTM29RgZQHasVCf5ChrYNVOqsygzc69H7G0IWvdq8wrJcBMVj0Tf+thUUzo62hhE9HI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1714768536; c=relaxed/simple; bh=bhi7nV0IDBa2dxUj9yio250sDJBLktM2Je8rbF6KW+w=; h=DKIM-Signature:Date:From:To:Message-ID:Subject:MIME-Version; b=GXVcqntVr8IkAXT648gTn5qvKQh3IAQ7rwE1fhCzw4c05D7683SwnGrRdeKqBnsDB7BvU6TDs8A8m/88vwpG4u3mh3Afh89v5XUWihHwufDqdBo1Pqeh1Eydl7YdtK9RUhPTDYi/0I3HB0SscFXzr5MkndaoKC532nyjfMygDjY= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1714768533; bh=bhi7nV0IDBa2dxUj9yio250sDJBLktM2Je8rbF6KW+w=; h=Date:From:To:Cc:In-Reply-To:References:Subject:From:Subject:Reply-To; b=PRy9h7v3HRFV3IKw7TWCqBalO2fsYyFjtKAROxrC81JD0BTtyZmeJw8YedCWlGL+9Cep2pPTj5uzGK0OFRI7lfGUXp31T0P9NWXJpVAkbI6Y8JjVN3wKFuZRiC7JEwKQnElFeGM9CPVOL7KEoYXiuyqSrnSZM3Fw0hbW8svyObu9iJBH2BafHkAR8v3udSBgTY8/F2ctLrAI5HMH4PJMIuJxJy6aob2xgBF4Ao8wcKI1HBQ2762XJZunU5BB2hI9teY1Ls/KgIhjNYGsehgqiLaLY3GnvKZM4mLGsJyUBIxMxoQjlD9pTwdTa4NyXv8UiL3B1Y/eQ/d6vjaO4s8YDw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1714768533; bh=TJKz3zEdTxzUr5IyypvNnsRMKveGorC/SVl1p1S4MEh=; h=X-Sonic-MF:Date:From:To:Subject:From:Subject; b=Wg17XbJ71wP3OBuDziX8ciAAfDKdARec3yCpkbxDm0eEmVUW1xpt1Azy1gw1ytQ1roh+EVEzP9N9JsdSU0A8AT3ZQG2t+Q1blh8Zxb1NSMuoIx4o5G+pe/EDEL4c3JpgEVxZoczCzzai0I9v8OW4IvEsxKciWLnwJgDc9I8+CmCsf2qJ3T/TJ1ViaI5r8EjoSSd/SDORUVcH2vuymmkKoTfIkKAcvNsB1CNHfjdyYkZwLRv+OrLX1Ka5K6F4xSXQKBvaHWxG4hhKQpc/5Tky65cK7GII2unBUCnCWjof6HVX5w/ukAq3oIIwJthpkohVku9zq24NaNZF+MrB8VA84A== X-YMail-OSG: Fxg2suAVM1lVTXKWxHSwAr75VL3yKzGBgD4jhfKT2rpaO7bo8S8va5gcmMnBI3O W3V_MrgYNkmuIk6EjuOKPuUlinrJ4A0JcFCWNsNpCPq3Y8ThT.aD7uQBPZO.cwDg6_BVqTLeGb.A VMUTQWaTpdC_fEOP2f4IBhnLxoFSieEtohVMgmC2Zg6iXyqX2IcIzyPNVOiWGPv5rXFfRUwxN8fO u9ASUBZoG7jHFW0pWFgdPKZrj8mH3cdbq_Tlw2gKDmNl.Rc_0PA6bgkTc1dHzqns0TkWgdkRARdZ OkUN.pMiFhCNG7HQZOEyP2T7jyVUjGkEAOSA7EqiMhZ6tv1mZMvEWrhbCoYqT3ojXaoZEGidfJyp MuZShA4.LgnvbRYw9ZFgssF3D7i93jJvwykcj_pdpwGDl3.x7mOEhxcCa4LMcLy_lv53as3CvV.d Lfe5iroaINylY1Fb4ipJaULflGvc5YRn5XrM6y7t8n1kaL1AbnP64IeA6P.R9Z2Xia3FrC3Ko8uX O19h6wAmJiL.9ZvwjKQzsXhJ_t3xgr3AxBh.p2KOAvWVl42VBskibL6vDqTzmIGa84GxqK4zEk_W ibsYUNKMisd0OGO7NxtVJ3sZQf7Rwp88AWTKn4L9VaqhzmQkHidaZ_mXfuU_NHU4xG040j1JfU46 naCOpUQy5wfchotBUkOEokGBOEH41jcA9e96XO5SVJR_w3cIt6AQTirRWysF8md9FMKrBL3D2Gmr jjA0TCdeom1DFh6LvPWqoFz48vU.zQTFfefQug_4pwTvyv3ZS3jwh1jqLF0e_rE6pRfy59_MJ6TN x4XwGUwCqmvuy.mG4rqqND7nqrfAofXQI5uOh.3JcD803CQGuV5V0i2ZaYaFJslfCS1sBwa7Yx8y vo92bg3fX4z_EPNnsSF5qxPCIi2NqD9yQSmtC_vY0QnX0D854P2.f3lnEJ7GDaxz52ZAWoGB8Dwg wiAXtoRucsCBiqCNWj4IHm_ZEDNotAXIUFRp.D56In5sVImwKd5a2lMpX8cmMt2XKdwIHm33Lfbd eWyRE7RfgJHMRWeI.w5OWTVM3a7IGJ.Ou5E3mAMBDXn_fBOWf3YJ1Bm8Kx6KbmAbuG_e70zhr24j UNhPVbUjpcJHk3nV6ziEoJwC.FU2k0xU4TaZ5BPfhINQkPBbYsRWPv5cKmQxznTb4y2VQ2ldywYE m1pIvrQUr0XlyJ0f5I9IsZtg3.FxO2tH93RakYwNZYGr0rcT8_4TfXBixu6nLHkmb9kuhgoCjPVd dg_.jLEaV_.ynaHp_H5Tl2UTuxcy0P55WIME2FKZFHaaqyqEr_UzJ_kHMP8mWe4l3JXLgWVHQYBO xNeP7o5GNunnn_kkWVnNIbMGHLofsSaPVfuIiBq3gDFZa28nzKSXuoQgdXGHsDb59fWvv5YHZ3yQ Rx.OgdLYtsixtbDbUq5G16karAijCNcAAwdLpxGCW64mNrKDmbv90OA0GaD.9xWd8SavzfejWWWf hayCH8CthvFNlNwjnVZO4WGMMZkJi4e94j2tDnaHs1kT7ufbupYHJUDJ2PeTHExZo7aSZWib3Su9 EMRJ7xLQ6jhCSQeU.RK2qlnn1NpvRd7nvJNE6U8PTuy_Skj2kgdVDCnwx.F6exxv0ANzWWy3F9SK 3sMq4LeVdAPSOU5N9wDIMk45konYcQGK3zUEcAOQowOPNUkZzAuxXvclrg9MtQD.wfFkRjoQiy_O njTQdEe3ghKJyp.DOGmCvs3LaeMygvNLcrRUsi68FBlvkA.7ITjj5FJ8mScTvcoyFnFGsxWi1pLb VZiwJ8QllKBtV1mQMR_1OHccfJVKfqGjZ7pXrSP_kzCDPzIOtwcxAekrirNNfazWz79rQY4ln1Cp cBYw_.nQr6UtN8Il6NGbE.iep3mY0AgfssEogFQV5fnQlGgZ3dENDXfDujk.e0W7nbhhdKAYTmk. 8owsKkIwXqsj1Xw3cnRovTpAYFcXcyjDKZxBCS8uWdnYO6Q3E0u9sYW49sQ73mY.pNF8yHtyRSLq WdBbcYGkumuFugLhHvqOMPVk0iEBbCzfzqSkExdN4q9ddXTSBW.0Gv5MvOUNU9D4KBGVXGBwkHlI Q4VfRiJ.akFUfdzoT3RG48LGW5lFKO_kv_E1PkqH1qgjxqizoO7jSev4spV4QRFULsysjur1gCCI vVQ_u2w0NMba0Ygoc2ls.SL5BlS.oJUUeW7xHQcn7s_P5dZrZq8jUfu5pzFLXrE3xyeMlyvn1xEF luK202O4rOj_0IdA06tdZlQ-- X-Sonic-MF: X-Sonic-ID: 1956ca36-ba67-4768-9f94-884bf49897ac Received: from sonic.gate.mail.ne1.yahoo.com by sonic306.consmr.mail.ir2.yahoo.com with HTTP; Fri, 3 May 2024 20:35:33 +0000 Date: Fri, 3 May 2024 20:35:29 +0000 (UTC) From: Hannes Domani To: Tom Tromey Cc: "gdb-patches@sourceware.org" , "blarsen@redhat.com" Message-ID: <829989170.10609936.1714768529914@mail.yahoo.com> In-Reply-To: <87msp6d5ik.fsf@tromey.com> References: <20240427163606.1780-1-ssbssa.ref@yahoo.de> <20240427163606.1780-1-ssbssa@yahoo.de> <87msp6d5ik.fsf@tromey.com> Subject: Re: [PATCH v2] Allow calling of user-defined function call operators MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Mailer: WebService/1.1.22256 YMailNorrin X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,TXREP 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 Freitag, 3. Mai 2024 um 22:06:46 MESZ hat Tom Tromey F= olgendes geschrieben: > >>>>> "Hannes" =3D=3D Hannes Domani writes: > > Hannes> The change in operation::evaluate_funcall is to make sure the typ= e > Hannes> fields are only used for function types, only they use them as th= e > Hannes> argument types. > > IIRC the evaluation operations are all kind of complicated and > hairy... but it seems to me that the type of the chosen overload of > operator() would supply the type here? Here the overload of operator() is chosen based on the argument values, not the other way round. > Hannes> +=C2=A0 type *ftype =3D callee->type (); > Hannes> + > Hannes> +=C2=A0 /* If the callee is a struct, there might be a user-defin= ed function call > Hannes> +=C2=A0=C2=A0=C2=A0 operator that should be used instead.=C2=A0 *= / > Hannes> +=C2=A0 std::vector vals; > Hannes> +=C2=A0 if (overload_resolution > Hannes> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 && exp->language_defn->la_languag= e =3D=3D language_cplus > Hannes> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 && check_typedef (ftype)->code ()= =3D=3D TYPE_CODE_STRUCT) > Hannes> +=C2=A0=C2=A0=C2=A0 { > > One question to consider is whether this should be done in the > expression node or elsewhere.=C2=A0 Other operator overloads are handled = in > the value API instead. > > I'm not sure which is better.=C2=A0 It would probably be cleaner to do it= in > the expression nodes, like you've done.=C2=A0 Actually the best would > probably be to make a new operation subclass and avoid the need for a > language check. I've now moved the logic into evaluate_subexp_do_call so all operation subclasses would profit from this, so I don't understand how a new operation subclass would work for this. > However, the value API is convenient to use -- for example, this is what > makes operator overloading work in the Python API. > > You can see the distinction with this patch by trying to call a > struct-with-operator() object from Python. Calling a struct-with-operator() object from Python does not work, because valpy_call directly calls call_function_by_hand. It would maybe be possible to also call evaluate_subexp_do_call there. Hannes