Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Simon Marchi <simon.marchi@efficios.com>
To: gdb-patches@sourceware.org
Cc: Simon Marchi <simon.marchi@efficios.com>
Subject: [PATCH 1/2] gdb/linux-tdep: clearer variable names in linux_get_siginfo_type
Date: Thu, 13 Aug 2026 12:18:58 -0400	[thread overview]
Message-ID: <20260813161905.345483-1-simon.marchi@efficios.com> (raw)

Instead of reusing the single variable `type`, use distinct variables
for the various types created.  I find it more readable this way, it's
easier to track what's being added to what.

Do other cleanups at the same time, like NULL -> nullptr, removing some
`struct` keywords, and moving variable declarations to the point of
first use.

Change-Id: I846df0d4ad2208b768465c14abdc5422cc16bd07
---
 gdb/linux-tdep.c | 154 +++++++++++++++++++++++++----------------------
 1 file changed, 83 insertions(+), 71 deletions(-)

diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c
index 23e43ba5c5f9..fa9e5cb6f4d9 100644
--- a/gdb/linux-tdep.c
+++ b/gdb/linux-tdep.c
@@ -268,58 +268,54 @@ get_linux_inferior_data (inferior *inf)
 
 /* Implementation of gdbarch_get_siginfo_type.  */
 
-static struct type *
+static type *
 linux_get_siginfo_type (struct gdbarch *gdbarch)
 {
-  struct linux_gdbarch_data *linux_gdbarch_data;
-  struct type *void_ptr_type;
-  struct type *uid_type, *pid_type;
-  struct type *sigval_type, *clock_type;
-  struct type *siginfo_type, *sifields_type;
-  struct type *type;
+  linux_gdbarch_data *linux_gdbarch_data = get_linux_gdbarch_data (gdbarch);
 
-  linux_gdbarch_data = get_linux_gdbarch_data (gdbarch);
-  if (linux_gdbarch_data->siginfo_type != NULL)
+  if (linux_gdbarch_data->siginfo_type != nullptr)
     return linux_gdbarch_data->siginfo_type;
 
   type_allocator alloc (gdbarch);
 
   const struct builtin_type *builtin_types = builtin_type (gdbarch);
-  struct type *int_type = builtin_types->builtin_int;
-  struct type *uint_type = builtin_types->builtin_unsigned_int;
-  struct type *long_type = builtin_types->builtin_long;
-
-  void_ptr_type = lookup_pointer_type (builtin_type (gdbarch)->builtin_void);
+  type *int_type = builtin_types->builtin_int;
+  type *uint_type = builtin_types->builtin_unsigned_int;
+  type *long_type = builtin_types->builtin_long;
+  type *void_ptr_type
+    = lookup_pointer_type (builtin_type (gdbarch)->builtin_void);
 
   /* sival_t */
-  sigval_type = arch_composite_type (gdbarch, NULL, TYPE_CODE_UNION);
-  sigval_type->set_name (xstrdup ("sigval_t"));
-  append_composite_type_field (sigval_type, "sival_int", int_type);
-  append_composite_type_field (sigval_type, "sival_ptr", void_ptr_type);
+  type *sigval_union_type = arch_composite_type (gdbarch, nullptr,
+						 TYPE_CODE_UNION);
+  sigval_union_type->set_name (xstrdup ("sigval_t"));
+  append_composite_type_field (sigval_union_type, "sival_int", int_type);
+  append_composite_type_field (sigval_union_type, "sival_ptr", void_ptr_type);
 
   /* __pid_t */
-  pid_type = alloc.new_type (TYPE_CODE_TYPEDEF,
-			     int_type->length () * TARGET_CHAR_BIT,
-			     "__pid_t");
+  type *pid_type = alloc.new_type (TYPE_CODE_TYPEDEF,
+				   int_type->length () * TARGET_CHAR_BIT,
+				   "__pid_t");
   pid_type->set_target_type (int_type);
   pid_type->set_target_is_stub (true);
 
   /* __uid_t */
-  uid_type = alloc.new_type (TYPE_CODE_TYPEDEF,
-			     uint_type->length () * TARGET_CHAR_BIT,
-			     "__uid_t");
+  type *uid_type = alloc.new_type (TYPE_CODE_TYPEDEF,
+				   uint_type->length () * TARGET_CHAR_BIT,
+				   "__uid_t");
   uid_type->set_target_type (uint_type);
   uid_type->set_target_is_stub (true);
 
   /* __clock_t */
-  clock_type = alloc.new_type (TYPE_CODE_TYPEDEF,
-			       long_type->length () * TARGET_CHAR_BIT,
-			       "__clock_t");
+  type *clock_type = alloc.new_type (TYPE_CODE_TYPEDEF,
+				     long_type->length () * TARGET_CHAR_BIT,
+				     "__clock_t");
   clock_type->set_target_type (long_type);
   clock_type->set_target_is_stub (true);
 
   /* _sifields */
-  sifields_type = arch_composite_type (gdbarch, NULL, TYPE_CODE_UNION);
+  type *sifields_union_type = arch_composite_type (gdbarch, nullptr,
+						   TYPE_CODE_UNION);
 
   {
     const int si_max_size = 128;
@@ -331,70 +327,86 @@ linux_get_siginfo_type (struct gdbarch *gdbarch)
       si_pad_size = (si_max_size / size_of_int) - 4;
     else
       si_pad_size = (si_max_size / size_of_int) - 3;
-    append_composite_type_field (sifields_type, "_pad",
+
+    append_composite_type_field (sifields_union_type, "_pad",
 				 init_vector_type (int_type, si_pad_size));
   }
 
   /* _kill */
-  type = arch_composite_type (gdbarch, NULL, TYPE_CODE_STRUCT);
-  append_composite_type_field (type, "si_pid", pid_type);
-  append_composite_type_field (type, "si_uid", uid_type);
-  append_composite_type_field (sifields_type, "_kill", type);
+  type *kill_struct_type = arch_composite_type (gdbarch, nullptr,
+						TYPE_CODE_STRUCT);
+  append_composite_type_field (kill_struct_type, "si_pid", pid_type);
+  append_composite_type_field (kill_struct_type, "si_uid", uid_type);
+  append_composite_type_field (sifields_union_type, "_kill", kill_struct_type);
 
   /* _timer */
-  type = arch_composite_type (gdbarch, NULL, TYPE_CODE_STRUCT);
-  append_composite_type_field (type, "si_tid", int_type);
-  append_composite_type_field (type, "si_overrun", int_type);
-  append_composite_type_field (type, "si_sigval", sigval_type);
-  append_composite_type_field (sifields_type, "_timer", type);
+  type *timer_struct_type = arch_composite_type (gdbarch, nullptr,
+						 TYPE_CODE_STRUCT);
+  append_composite_type_field (timer_struct_type, "si_tid", int_type);
+  append_composite_type_field (timer_struct_type, "si_overrun", int_type);
+  append_composite_type_field (timer_struct_type, "si_sigval",
+			       sigval_union_type);
+  append_composite_type_field (sifields_union_type, "_timer",
+			       timer_struct_type);
 
   /* _rt */
-  type = arch_composite_type (gdbarch, NULL, TYPE_CODE_STRUCT);
-  append_composite_type_field (type, "si_pid", pid_type);
-  append_composite_type_field (type, "si_uid", uid_type);
-  append_composite_type_field (type, "si_sigval", sigval_type);
-  append_composite_type_field (sifields_type, "_rt", type);
+  type *rt_struct_type = arch_composite_type (gdbarch, nullptr,
+					      TYPE_CODE_STRUCT);
+  append_composite_type_field (rt_struct_type, "si_pid", pid_type);
+  append_composite_type_field (rt_struct_type, "si_uid", uid_type);
+  append_composite_type_field (rt_struct_type, "si_sigval", sigval_union_type);
+  append_composite_type_field (sifields_union_type, "_rt", rt_struct_type);
 
   /* _sigchld */
-  type = arch_composite_type (gdbarch, NULL, TYPE_CODE_STRUCT);
-  append_composite_type_field (type, "si_pid", pid_type);
-  append_composite_type_field (type, "si_uid", uid_type);
-  append_composite_type_field (type, "si_status", int_type);
-  append_composite_type_field (type, "si_utime", clock_type);
-  append_composite_type_field (type, "si_stime", clock_type);
-  append_composite_type_field (sifields_type, "_sigchld", type);
+  type *sigchld_struct_type = arch_composite_type (gdbarch, nullptr,
+						   TYPE_CODE_STRUCT);
+  append_composite_type_field (sigchld_struct_type, "si_pid", pid_type);
+  append_composite_type_field (sigchld_struct_type, "si_uid", uid_type);
+  append_composite_type_field (sigchld_struct_type, "si_status", int_type);
+  append_composite_type_field (sigchld_struct_type, "si_utime", clock_type);
+  append_composite_type_field (sigchld_struct_type, "si_stime", clock_type);
+  append_composite_type_field (sifields_union_type, "_sigchld",
+			       sigchld_struct_type);
 
   /* _sigfault */
-  type = arch_composite_type (gdbarch, NULL, TYPE_CODE_STRUCT);
-  append_composite_type_field (type, "si_addr", void_ptr_type);
-  append_composite_type_field (sifields_type, "_sigfault", type);
+  type *sigfault_struct_type = arch_composite_type (gdbarch, nullptr,
+						    TYPE_CODE_STRUCT);
+  append_composite_type_field (sigfault_struct_type, "si_addr", void_ptr_type);
+  append_composite_type_field (sifields_union_type, "_sigfault",
+			       sigfault_struct_type);
 
   /* _sigpoll */
-  type = arch_composite_type (gdbarch, NULL, TYPE_CODE_STRUCT);
-  append_composite_type_field (type, "si_band", long_type);
-  append_composite_type_field (type, "si_fd", int_type);
-  append_composite_type_field (sifields_type, "_sigpoll", type);
+  type *sigpoll_struct_type = arch_composite_type (gdbarch, NULL,
+						   TYPE_CODE_STRUCT);
+  append_composite_type_field (sigpoll_struct_type, "si_band", long_type);
+  append_composite_type_field (sigpoll_struct_type, "si_fd", int_type);
+  append_composite_type_field (sifields_union_type, "_sigpoll",
+			       sigpoll_struct_type);
 
   /* _sigsys */
-  type = arch_composite_type (gdbarch, NULL, TYPE_CODE_STRUCT);
-  append_composite_type_field (type, "_call_addr", void_ptr_type);
-  append_composite_type_field (type, "_syscall", int_type);
-  append_composite_type_field (type, "_arch", uint_type);
-  append_composite_type_field (sifields_type, "_sigsys", type);
+  type *sigsys_struct_type = arch_composite_type (gdbarch, nullptr,
+						  TYPE_CODE_STRUCT);
+  append_composite_type_field (sigsys_struct_type, "_call_addr",
+			       void_ptr_type);
+  append_composite_type_field (sigsys_struct_type, "_syscall", int_type);
+  append_composite_type_field (sigsys_struct_type, "_arch", uint_type);
+  append_composite_type_field (sifields_union_type, "_sigsys",
+			       sigsys_struct_type);
 
   /* struct siginfo */
-  siginfo_type = arch_composite_type (gdbarch, NULL, TYPE_CODE_STRUCT);
-  siginfo_type->set_name (xstrdup ("siginfo"));
-  append_composite_type_field (siginfo_type, "si_signo", int_type);
-  append_composite_type_field (siginfo_type, "si_errno", int_type);
-  append_composite_type_field (siginfo_type, "si_code", int_type);
-  append_composite_type_field_aligned (siginfo_type,
-				       "_sifields", sifields_type,
+  type *siginfo_struct_type = arch_composite_type (gdbarch, nullptr,
+						   TYPE_CODE_STRUCT);
+  siginfo_struct_type->set_name (xstrdup ("siginfo"));
+  append_composite_type_field (siginfo_struct_type, "si_signo", int_type);
+  append_composite_type_field (siginfo_struct_type, "si_errno", int_type);
+  append_composite_type_field (siginfo_struct_type, "si_code", int_type);
+  append_composite_type_field_aligned (siginfo_struct_type, "_sifields",
+				       sifields_union_type,
 				       long_type->length ());
 
-  linux_gdbarch_data->siginfo_type = siginfo_type;
+  linux_gdbarch_data->siginfo_type = siginfo_struct_type;
 
-  return siginfo_type;
+  return siginfo_struct_type;
 }
 
 /* Return true if the target is running on uClinux instead of normal

base-commit: 1686e21559a7812ebbc05f57372cc30880768bf7
-- 
2.55.0


             reply	other threads:[~2026-08-13 16:19 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-13 16:18 Simon Marchi [this message]
2026-08-13 16:18 ` [PATCH 2/2] gdb: pass type name directly to arch_composite_type Simon Marchi
2026-08-21 15:23   ` Tom Tromey
2026-08-21 15:20 ` [PATCH 1/2] gdb/linux-tdep: clearer variable names in linux_get_siginfo_type Tom Tromey

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260813161905.345483-1-simon.marchi@efficios.com \
    --to=simon.marchi@efficios.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox