From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io1-xd2e.google.com (mail-io1-xd2e.google.com [IPv6:2607:f8b0:4864:20::d2e]) by sourceware.org (Postfix) with ESMTPS id 2FFB03858409 for ; Mon, 28 Aug 2023 19:59:33 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2FFB03858409 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com Received: by mail-io1-xd2e.google.com with SMTP id ca18e2360f4ac-7928ba24936so78924039f.0 for ; Mon, 28 Aug 2023 12:59:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; t=1693252772; x=1693857572; h=to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Rhi2h1XeIEFPtx/iD8vvfiX0r99ML4m4tV2vGFxAMgg=; b=Cr8IE678quoSdlUlOrRx3T0QOEc8AtzR5rNHjFP80HlKXJyS/VTP2YSxEpBqav0lkV xAB5l4ncyR2Usgju9ZsmR0kdvv8cIBJKXO1BoDRgp75YVSUJMrTOsTshTSHQG/nNzrK8 NIBRG862dKWBN3GTyndP3wYB3+zc4E9dJsOkBQsdWhodba9HYdbRsSti2JUpGUa+65v7 Z0rlNzNBnhpsiEK8K7To4p/zufQYLpZK+NhZcsxgj3DRMUCqib6s44ZlvLZ/NkZ+dQr7 +1y1WgZ4u9/Nj1G0Gy2GPpatbLfFl4vwYqY9xKieecYptLsNESgyUGuaUz+KIN9IW53F luHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693252772; x=1693857572; h=to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Rhi2h1XeIEFPtx/iD8vvfiX0r99ML4m4tV2vGFxAMgg=; b=igeWViNNa/lxdbQ9uYY8QWgilz5lO3L0FdB4AvsQTMpAqc5g8psqaIjeef8d4Xqovp vq0TBrXmmDvXjk3qSBd8FRxkxq7Jt027jdbX9D6333ubsEsbGhUqxedaMI9WpsYjq483 D/tnGjdWQJ44tCDoO18Krkr70NIhmcJFgUE0L88XS2qfPGi9QNk+QgHzjMCainSNghvt C0Cun/AjTtRYgIGHmcU0JC7ERKr9Um6EtxSpG35IhcWVIEYyjWT8ARMAXqJ1fcoRBN9l BEmQHorUtFcqBBjZyH10tQjhsjuccpoOvyRc8rZlEsKG0QBVsRqnZvBd5DemLnpkATeH 5EqQ== X-Gm-Message-State: AOJu0Yy+wVK8o/kilI/46jZekgZAOr98O7zSEqTDNAXjo4RzouliEVsx GyRt7Hyr1DR8Vpo0DskMw2U4jn5YndPDQTXhaea9KA== X-Google-Smtp-Source: AGHT+IFKgQ+i/3Q8osDruILBvDu4w9U1vWkUXR4U1QRvTVUdOVAX6C9m2yEEDpkvEfJ0rISu/TXakw== X-Received: by 2002:a6b:dc03:0:b0:792:8d16:91ef with SMTP id s3-20020a6bdc03000000b007928d1691efmr8994371ioc.18.1693252772249; Mon, 28 Aug 2023 12:59:32 -0700 (PDT) Received: from localhost.localdomain (75-166-150-212.hlrn.qwest.net. [75.166.150.212]) by smtp.gmail.com with ESMTPSA id z24-20020a056602205800b00777b7fdbbffsm2769063iod.8.2023.08.28.12.59.31 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Aug 2023 12:59:31 -0700 (PDT) From: Tom Tromey Date: Mon, 28 Aug 2023 13:59:31 -0600 Subject: [PATCH 1/5] Use gdb::array_view for value_array MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20230828-cleanup-array-op-v1-1-12ca00f20917@adacore.com> References: <20230828-cleanup-array-op-v1-0-12ca00f20917@adacore.com> In-Reply-To: <20230828-cleanup-array-op-v1-0-12ca00f20917@adacore.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.3 X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,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: This changes value_array to accept an array view. I also replaced an alloca with a std::vector in array_operation::evaluate. This function can work on any size of array, so it seems bad to use alloca. --- gdb/eval.c | 2 +- gdb/rust-lang.c | 2 +- gdb/valops.c | 3 ++- gdb/value.h | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/gdb/eval.c b/gdb/eval.c index 457a6697923..00b9231a5b9 100644 --- a/gdb/eval.c +++ b/gdb/eval.c @@ -2515,7 +2515,7 @@ array_operation::evaluate (struct type *expect_type, return set; } - value **argvec = XALLOCAVEC (struct value *, nargs); + std::vector argvec (nargs); for (tem = 0; tem < nargs; tem++) { /* Ensure that array expressions are coerced into pointer diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c index 5eb33d0d3b7..f6e7d25f587 100644 --- a/gdb/rust-lang.c +++ b/gdb/rust-lang.c @@ -1344,7 +1344,7 @@ eval_op_rust_array (struct type *expect_type, struct expression *exp, for (i = 0; i < copies; ++i) eltvec[i] = elt; - return value_array (0, copies - 1, eltvec.data ()); + return value_array (0, copies - 1, eltvec); } else { diff --git a/gdb/valops.c b/gdb/valops.c index ea9d9b38e74..1133049c54a 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -1692,7 +1692,8 @@ value_ind (struct value *arg1) don't currently enforce any restriction on their types). */ struct value * -value_array (int lowbound, int highbound, struct value **elemvec) +value_array (int lowbound, int highbound, + gdb::array_view elemvec) { int nelem; int idx; diff --git a/gdb/value.h b/gdb/value.h index e5c63dccbe2..ccf52199146 100644 --- a/gdb/value.h +++ b/gdb/value.h @@ -1226,7 +1226,7 @@ inline struct value *value_string (const char *ptr, ssize_t count, } extern struct value *value_array (int lowbound, int highbound, - struct value **elemvec); + gdb::array_view elemvec); extern struct value *value_concat (struct value *arg1, struct value *arg2); -- 2.40.1