public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] Remove a couple of VLAs
@ 2024-04-21 18:43 Tom Tromey
  0 siblings, 0 replies; only message in thread
From: Tom Tromey @ 2024-04-21 18:43 UTC (permalink / raw)
  To: gdb-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6e4be957f79b67c117220b39a663c0319dec6b2d

commit 6e4be957f79b67c117220b39a663c0319dec6b2d
Author: Tom Tromey <tom@tromey.com>
Date:   Tue Apr 16 13:12:28 2024 -0600

    Remove a couple of VLAs
    
    I found a couple of spots where VLAs are in use but where they can
    easily be removed.
    
    In one spot, adding 'const' is enough -- and is already done in
    similar code elsewhere in the file.
    
    In another spot, one of two arrays will be used, so making the buffer
    large enough for both works.
    
    Approved-By: John Baldwin <jhb@FreeBSD.org>

Diff:
---
 gdb/aarch64-tdep.c   | 2 +-
 gdb/arc-linux-tdep.c | 6 +++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c
index 545ec872fd8..06eda102468 100644
--- a/gdb/aarch64-tdep.c
+++ b/gdb/aarch64-tdep.c
@@ -5713,7 +5713,7 @@ aarch64_process_record (struct gdbarch *gdbarch, struct regcache *regcache,
 			CORE_ADDR insn_addr)
 {
   uint32_t rec_no = 0;
-  uint8_t insn_size = 4;
+  const uint8_t insn_size = 4;
   uint32_t ret = 0;
   gdb_byte buf[insn_size];
   aarch64_insn_decode_record aarch64_record;
diff --git a/gdb/arc-linux-tdep.c b/gdb/arc-linux-tdep.c
index 54406ac5b90..30bd40c8027 100644
--- a/gdb/arc-linux-tdep.c
+++ b/gdb/arc-linux-tdep.c
@@ -174,6 +174,9 @@ arc_linux_is_sigtramp (const frame_info_ptr &this_frame)
     0x22, 0x6f, 0x00, 0x3f	/* swi */
   };
 
+  constexpr size_t max_insn_sz = std::max (sizeof (insns_be_hs),
+					   sizeof (insns_be_700));
+
   gdb_byte arc_sigtramp_insns[sizeof (insns_be_700)];
   size_t insns_sz;
   if (arc_mach_is_arcv2 (gdbarch))
@@ -200,7 +203,8 @@ arc_linux_is_sigtramp (const frame_info_ptr &this_frame)
 	std::swap (arc_sigtramp_insns[i], arc_sigtramp_insns[i+1]);
     }
 
-  gdb_byte buf[insns_sz];
+  gdb_assert (insns_sz <= max_insn_sz);
+  gdb_byte buf[max_insn_sz];
 
   /* Read the memory at the PC.  Since we are stopped, any breakpoint must
      have been removed.  */

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-04-21 18:43 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-21 18:43 [binutils-gdb] Remove a couple of VLAs Tom Tromey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).