From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-il1-x129.google.com (mail-il1-x129.google.com [IPv6:2607:f8b0:4864:20::129]) by sourceware.org (Postfix) with ESMTPS id C4EC13858D3C for ; Tue, 29 Aug 2023 15:34:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C4EC13858D3C 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-il1-x129.google.com with SMTP id e9e14a558f8ab-34cb5c41777so13935875ab.1 for ; Tue, 29 Aug 2023 08:34:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; t=1693323285; x=1693928085; h=cc: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=+p7geijNiilhKsuETrnQQGpEStETNesSAbkguDAevtU=; b=KEG3vEWiluenRlx6u11g446kaDqzmPSnvyqL6kLz6WZU81yCFcsodX52PfJxsQ8zLl 1sxFNu58GRmiOP3YEtQrqh1Mz4FYlHfd4MK4LbQrJ7w0PlwGNeAZaQID5pFsV9dLRnmk 9sRvZcsspzIEDtqnQ5yqqEpoBQ9G80DHdfhweSU85s0+Fp4CN9Z72foBuO5jRJr6nfiz ZDEsov6jJBJNLgi5ZSmVonb+RHi6G6dAswLamgKyyGLtPMfkqO4qBTYv/Qoem1JOjg5R i1aIzfJ+l/57dkWIhvVFYZ8au4oTht1Bu24s/K8XnAWT8uxkULyBDiutvfBm2l55o+1Z sFEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693323285; x=1693928085; h=cc: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=+p7geijNiilhKsuETrnQQGpEStETNesSAbkguDAevtU=; b=FKKoP3GAoA4shtVAkR9Qi6JLs+TuxJdEw4I2PT2zNR57b4KiZazxaIYLHPLiu+qSnR CxQF+Ydycuc1QWUEfxzOtwQJNXwP7Y/j4yJ25pzx0GRqCOXVQXYK+ZEvJ1oMxBnOP9sJ ySaq0uQtIPCcZQbj5e4ZOvtA7em2Y4amrnn32nd0hCsFHFrOjz+8Ob9oAUCgZwu7SZCJ E5w92DckiN6qYqz/5T0cbSS3OgcZP+JoXhnwSIHskaw8GqMoMv+510ZekmY6heR5JVfJ 8C3rFPX5uMV/FLtZdSzAgG/UF6//B/bZ0gxvFwmSWCHQksqowvIXE0Jjj3PDht9jsb7K TAUQ== X-Gm-Message-State: AOJu0YyIpDf0tE84Nq7+yJNnfD1N0fm8LxIiU4KrQwcQ+qzbbJaa99Q1 ZU/ClrQNo0LVCBMXN2cNFLCBoQ== X-Google-Smtp-Source: AGHT+IE/QALFoSEzheSHefQbscY15BepXrCbOkSjt4+TVkmIWBlS4i6N0sGnHDY9p471aZOE/WE0cQ== X-Received: by 2002:a05:6e02:54e:b0:345:baef:842b with SMTP id i14-20020a056e02054e00b00345baef842bmr18739263ils.25.1693323285058; Tue, 29 Aug 2023 08:34:45 -0700 (PDT) Received: from localhost.localdomain (75-166-150-212.hlrn.qwest.net. [75.166.150.212]) by smtp.gmail.com with ESMTPSA id i6-20020a92c946000000b0034cac5ced38sm3177387ilq.13.2023.08.29.08.34.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 29 Aug 2023 08:34:44 -0700 (PDT) From: Tom Tromey Date: Tue, 29 Aug 2023 09:34:39 -0600 Subject: [PATCH v2 1/7] Use gdb::array_view for value_array MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20230829-cleanup-array-op-v2-1-3035458b0443@adacore.com> References: <20230829-cleanup-array-op-v2-0-3035458b0443@adacore.com> In-Reply-To: <20230829-cleanup-array-op-v2-0-3035458b0443@adacore.com> To: gdb-patches@sourceware.org Cc: John Baldwin X-Mailer: b4 0.12.3 X-Spam-Status: No, score=-11.6 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. Reviewed-by: John Baldwin --- 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