[COMMITTED PATCH] [aarch64] Avoid initializers for VLAs

Roland McGrath via Gdb-patches
2023-02-09T19:07:15Z

C99 does not permit initializers for variable length arrays, and Clang
now enforces this.
Committed as obvious enough.

Thanks,
Roland

commit b695fdd9b2494a64db1fb8e584753a1a5afec494 (HEAD -> master)
Author: Roland McGrath <mcgrathr@google.com>
Date: Thu Feb 9 10:47:17 2023 -0800

[aarch64] Avoid initializers for VLAs

Clang doesn't accept initializer syntax for variable-length
arrays in C. Just use memset instead.

diff --git a/gdb/aarch64-linux-nat.c b/gdb/aarch64-linux-nat.c
index e4158236db2..ecb2eeb9540 100644
--- a/gdb/aarch64-linux-nat.c
+++ b/gdb/aarch64-linux-nat.c
@@ -56,6 +56,8 @@

#include "nat/aarch64-mte-linux-ptrace.h"

+#include <string.h>
+
#ifndef TRAP_HWBKPT
#define TRAP_HWBKPT 0x0004
#endif
@@ -445,7 +447,9 @@ fetch_tlsregs_from_thread (struct regcache *regcache)
gdb_assert (regno != -1);
gdb_assert (tdep->tls_register_count > 0);

- uint64_t tpidrs[tdep->tls_register_count] = { 0 };
+ uint64_t tpidrs[tdep->tls_register_count];
+ memset(tpidrs, 0, sizeof(tpidrs));
+
struct iovec iovec;
iovec.iov_base = tpidrs;
iovec.iov_len = sizeof (tpidrs);
@@ -471,7 +475,8 @@ store_tlsregs_to_thread (struct regcache *regcache)
gdb_assert (regno != -1);
gdb_assert (tdep->tls_register_count > 0);

- uint64_t tpidrs[tdep->tls_register_count] = { 0 };
+ uint64_t tpidrs[tdep->tls_register_count];
+ memset(tpidrs, 0, sizeof(tpidrs));

for (int i = 0; i < tdep->tls_register_count; i++)
{