On 2024-12-19 00:28, Flavio Cruz wrote:
> Compilation will fail with -Werror=vla, which seems to be the default.
>
> Note that we don't need to allocate num_threads + 1 since the matching
> algorithm works only on the num_threads as returned by task_threads.
I don't fully understand the algorithm, but I see that `matched` only
gets indexed using `i`, and `i` is always less than `num_threads`, so
this seems fine to me.
> ---
> gdb/gnu-nat.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/gdb/gnu-nat.c b/gdb/gnu-nat.c
> index a8a4da1c..be6fa879 100644
> --- a/gdb/gnu-nat.c
> +++ b/gdb/gnu-nat.c
> @@ -1016,15 +1016,13 @@ gnu_nat_target::inf_validate_procs (struct inf *inf)
> {
> /* Make things normally linear. */
> mach_msg_type_number_t search_start = 0;
> - /* Which thread in PROCS corresponds to each task thread, & the task. */
> - struct proc *matched[num_threads + 1];
> + /* Which thread in PROCS corresponds to each task thread. */
> + std::vector<struct proc *> matched (num_threads, nullptr);
It's not necessary to specify nullptr here, because the pointers will be
default initialized, which means nullptr for pointers.
Good point, I've sent a new patch.
LGTM with that fixed.
Approved-By: Simon Marchi <simon.marchi@efficios.com>
Do you have push access?
No, I don't. Thanks for the review.
Simon