From patchwork Fri Feb 9 13:04:51 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hannes Domani X-Patchwork-Id: 85516 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 C39CC3858C35 for ; Fri, 9 Feb 2024 13:05:42 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from sonic311-30.consmr.mail.ir2.yahoo.com (sonic311-30.consmr.mail.ir2.yahoo.com [77.238.176.162]) by sourceware.org (Postfix) with ESMTPS id 57EDB3858403 for ; Fri, 9 Feb 2024 13:05:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 57EDB3858403 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 57EDB3858403 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=77.238.176.162 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1707483921; cv=none; b=P52sVcShL6Ak8sai+94Fot3v3sOelW+obh8NZ2p/touZcxl7nzQnEi0ItJ1cAMdbKFGlK6W401eijMtI9nexJlw/hhLX91oTojY5qBo0Bz/jbAy9TEnTbKvSK7WeO/QsEm7EQLXdbSVtcHCJzVm/l6fhrDw5h3eJTws5FMt097M= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1707483921; c=relaxed/simple; bh=1To+7e/iRLug0Sx+16B9TC1GA2ib0ZksT64qS4SPTY8=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=xQ6tyTTfBgKsEJfENY0BhBy3R3rO9HDSmQny3gVXR0+sIVHP8NgI00vntAvVlZNZsW+rvC3t2KCKxgp2KfyWmROJBzaPKt5ecL9n9rhyNSfdEw2lNlo3Kpngi6ntAlfH1uBspnIYEfHNY+NpMBbNLGi78O4t8Ptcirys+wfY9zY= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1707483916; bh=6moIeLAZWWN2ofm5+mofoFXiYL0BTi3QuBgqa1kn7i4=; h=From:To:Subject:Date:References:From:Subject:Reply-To; b=S9lajPsUkfO53CB3S2f15pQbasAjd/DnEEnpitIjwdLa4pE3Oor/nd0dn8eNWXLFs2yVgl6frG4SjKKTEsMMhjMnn2mSrmcDzX87VQ2lkki2quDB3UMGbg73nqlf2owVwKnlxi5xBEotbIFgv0sVCIz0hEmr6iFk+4HrkitZEGaLQW0luCsqPOorKw1Ln6IOKoa2baBQe0tu/V9XWk4yrbcLpqpcj8f6c4w0JhsrRsiAagPtT7QRjT4Yi3KqT1EceLhgCxM9ChZbnTTS5XA66TUJS2wQSF7jqBLExZGMPvv5IM6MF5fnIvtJ2A8gj8sphZFRvbdfFyeTRNWNz/O2ig== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1707483916; bh=E+BM+R0fm4kY/Dfx5gJDxzZAwrlXuxfYbHrZd+Ka4jb=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=ZpNIh9jYu3ywPA9LWkn+wo1rbL/h1qviM0uj9Nk5YP4+axyjgUlCWIaDmFPcwDpkySzJ7QmNQxKDmuY/dETzFGTyULVapyL6LGDX/nn/aZa4VeGmV4dx2dzZacIyHGqYk9gEz2VDoTZuIya79Z8OCH9qwrkIjiySnaPUcqM37FSpGOTZ/Uq+ZV26FXU7ANfYATkFORASWLVO6VirGB6dWSirDFz6a+SS2oEjtUy5jPauPOaoyMuO9lcs/0/pynUDbeHirYVifCLxduzZtuXN8iyCgGe8qSINvUliWYX9V9mmyrLXcFRJVXNv3OXmjxraGqSqmcDOOeDTRxPYnQbknw== X-YMail-OSG: t9sOPj4VM1mwUhBK_dN4KxYs0.GUftAXI4C5h.wwIR9JvEzLbS12PAAkVmuZ.N0 g79gQW2wMYG0VdiKcdPMoKz4yR.IUqfXYqRIkhaA9HaNiMjJ.AHKmf41YtqEYCyGKkWFcxir3pVe znm1gxXBlg1zutgV_hnsJ4La5PwDiD0UL9JIzSqL3Iz6lzisWEt.7g9OPZLuQ5OqcWaZbu5dZSw8 v_4qPEtZ3OVH1NrogBKe92J88NyB04pjz5jZj6REWyS9r_lv634Ym8WKyF.Ni9.7UPcTctSPt56j RJacgeKzYSVfstNipQ_2eZIgkluXqaymQhWIvyNPVbTGhSKWj7MCxse8BGON0vUYygA9aVn5BVhm 3ggH8w0TH5m.86eJkpj3.39C2jgSBlPH0YPf54oIR_CXgjsfgKNbLOY9yNibA3Vkx.OL2dBkAM3z Gas4rBA5FC5_4SXnVdx7o0bwjaJ7W6ICdz_dYh8ZmY1Qasos1HIm5AmF1ndpXqHJhwdCjK7TJKru R2gREY1givlBIvf_C15418e1Mtt60U9enja9GljRsO07edVru.rfAW2OJWjK7.cSiW0Dj.7ItvUc OEQgRmKVeIEf898VDdB8PMJ7mtfLpkhS6KbIk5Z2wEXhhHINkwha8FfaQTO36Uj.e4g0PWPjao5d 1GG4mmRIo9hkALu2GJ8FHwZGQg8tKLP6Vg1rYcXMO1RiiUqRKDjYPjZQebRPuEW2nAf9JBL4lErs KBZhvRZ6XY4WSf7kptAD7_z5U2tWpu4WrC44Y4UcIu1vNE.3nPkIoc7sgI1xFPsnIaWVC5nGsJJ6 9ZFj.Yg4ZuRZvVsh5mmjaCVEvzTtgpxK3CkPnWvchomR.OON7BqOrbFlBBripALGGZUnqOLMwQ4H 86kzZ8G4RCse.d7Rucy_pC13PDn.5zDz5sRxf8cb1FvXPXRY3o7g94tB0bV4bQqLtUsvDHM203k7 LShPBQooJcqAaLZy8.cBYCptBTdF02HTtBnBNc_z89DxQtI8vaASu_4pi3TEIUudiaohR.ssUBR9 fFldtNSrwVgGUqhwpwbz_yLa0r7KiRxTI3NHfro_.smTrNdghVB_kvukZ0vgKGIOiioFewDC5n82 2QN3XF0vgpjW.xJazIWX0Png.8L9HMDJKMLrbuIMwh7xXmoDK3Qf74A5tb1DpE27_N80OPuS0iuT wUVEL15ZOwUfAgHVkClh.J5QicJTZSoyNhADv3vVniE3d1DKQMml7uM.2gqqW5gw1LinVVya_UE6 ..9AXe3OTpHHwjZ.y634esDNFhDKJKrghyk44q980CgYNh2hLgwQayRkL_E...Y4ACKx9GUnKDDU jmsOlp9KdItwXM_3nsTv2Hsu5KS9YmKcMjmgGgAYgM2Y3XkLaSFODMfkXvSqY3qrg5mkFtA8RKpa rFOYXNNxgerYT8CqvVAP_MDRRVqJW6YCPgmcVXnm7i32C2LX61AxPADTW4i9IzSCuDq5d.t8tv30 .5ZckhP_y.dlqZVhnRsZ.IIq6AeFn4mvds2_HFIPAIJQ1NhGT9NFL_N8z.n5hMtOg8gx16diCBEx jpcXdKzZko7hKVvxOBk88NNQ9zy1FHjqOxnFXHZBxJGj1FiTiTNsoq.y154Sunt2lPQrhgJaoHlY AYrEGreRxHrEDPLX2WWKdOQ8yfKRkMvhfE8_QI4n_6sXTn.Pfotk2MREDvkoIQWAgTV6yFZ0YNeS COGX2.TtXn8bd54Qcf8OFdJzEFnQ8CQ4pU4Y56IcHjJKGwoKa9C7fSnF0yIbdYOk1c.o7be51sdg srut3w93609IKrQ4Ck._ekUZbNf3J4dtD9VccANuvfvnTBlU5TC1GiLQOIxCEdierQY22ILOGCXh WKpvwMKSXQnqj5_ovVuNC.iweQpsvlv51aaPcB9GdNxXsWfgS3W.2amAdSVnMyWDkU6dTrblf.9X IAA4Bds.EokvpcEWPbw2XELsCT8JR4F7Df80uEta2xy1yS41gh5hWyKUBVZpbJ53ULDz.ex1sLnW hfevBAu3uQeKX3PlXMrJiJMh_EiX9lQetdXKVSzSpwNo_Rg7FOmkuYimIhSZl0ndJ.1uQbQDQFMH .LcGbyIjJJLZvs5haOtGnq2rSjqfqM3_06Lmd.gJOcDu5osfBlvF7t7t1tNAfibVnPi3y6oYtlde U3BXdToGDK2DMi2z8g1DRVpmMx9Z9mmWEDsodgR7pSoDpV8d8a8Q34emeuLGKMkuheIE3d92Si.N JJENNDrbibF.Bfc1XeU0y565VPA-- X-Sonic-MF: X-Sonic-ID: 9e68d481-4ff6-4f75-8b37-a580de5de9a9 Received: from sonic.gate.mail.ne1.yahoo.com by sonic311.consmr.mail.ir2.yahoo.com with HTTP; Fri, 9 Feb 2024 13:05:16 +0000 Received: by hermes--production-ir2-7bc88bfc75-bwvz5 (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID e38d61e2571e6a6432d3ddb7fc13946a; Fri, 09 Feb 2024 13:05:14 +0000 (UTC) From: Hannes Domani To: gdb-patches@sourceware.org Subject: [PATCH] Allow value repeat operator on references Date: Fri, 9 Feb 2024 14:04:51 +0100 Message-Id: <20240209130451.31442-1-ssbssa@yahoo.de> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 X-Antivirus: Avast (VPS 240208-4, 02/08/2024), Outbound message X-Antivirus-Status: Clean References: <20240209130451.31442-1-ssbssa.ref@yahoo.de> X-Spam-Status: No, score=-9.5 required=5.0 tests=BAYES_00, 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 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org Currently it's not possible to use the value repeat operator on references: ``` print ((int &) v_int_array_init[0])@2 Only values in memory can be extended with '@'. ``` This seems like an unnecessary restriction, since it also prevents its use on iterators (which was the original reported problem): ``` (gdb) p *it@2 Only values in memory can be extended with '@'. ``` So this converts any references to the referenced value in value_repeat, making this possible: ``` print ((int &) v_int_array_init[0])@2 $1 = {10, 20} (gdb) p *it@2 $2 = {1, 2} ``` --- gdb/testsuite/gdb.base/exprs.exp | 1 + gdb/valops.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/gdb/testsuite/gdb.base/exprs.exp b/gdb/testsuite/gdb.base/exprs.exp index 239cdce8dc2..0f8c53bc716 100644 --- a/gdb/testsuite/gdb.base/exprs.exp +++ b/gdb/testsuite/gdb.base/exprs.exp @@ -259,6 +259,7 @@ gdb_test {print *v_int_array_init@2} { = \{10, 20\}} gdb_test {print v_int_array_init[0]@1} { = \{10\}} gdb_test {print v_int_array_init[0]@2} { = \{10, 20\}} gdb_test {print v_int_array_init[1]@1} { = \{20\}} +gdb_test {print ((int &) v_int_array_init[0])@2} { = \{10, 20\}} # gdb's {} extension gdb_test_no_output "set variable v_short_array\[0\] = 42" diff --git a/gdb/valops.c b/gdb/valops.c index e2694f0c32b..399d0f109e1 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -1349,6 +1349,8 @@ value_repeat (struct value *arg1, int count) { struct value *val; + arg1 = coerce_ref (arg1); + if (arg1->lval () != lval_memory) error (_("Only values in memory can be extended with '@'.")); if (count < 1)