[binutils-gdb] gdb/dwarf: define type aliases for dwarf2_frame_ops function types

Simon Marchi via Gdb-cvs <[email protected]>
Newsgroups gmane.comp.gdb.cvs
Message-ID <[email protected]>
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=2cb2c073aac1769b1738b2ca22900ce61181e8a9

commit 2cb2c073aac1769b1738b2ca22900ce61181e8a9
Author: Simon Marchi <[email protected]>
Date:   Wed Mar 11 14:05:44 2026 -0400

    gdb/dwarf: define type aliases for dwarf2_frame_ops function types
    
    This makes the code less verbose, and I think more readable.
    
    Change-Id: I715669281d341bd15547e3eba82c716a953f2274
    Approved-By: Tom Tromey <[email protected]>

Diff:
---
 gdb/dwarf2/frame.c | 40 +++++++++++++---------------------------
 gdb/dwarf2/frame.h | 45 +++++++++++++++++++++++----------------------
 2 files changed, 36 insertions(+), 49 deletions(-)

diff --git a/gdb/dwarf2/frame.c b/gdb/dwarf2/frame.c
index f9046bb51df..152bebef0e3 100644
--- a/gdb/dwarf2/frame.c
+++ b/gdb/dwarf2/frame.c
@@ -590,16 +590,14 @@ static void dwarf2_frame_default_init_reg (struct gdbarch *gdbarch,
 struct dwarf2_frame_ops
 {
   /* Pre-initialize the register state REG for register REGNUM.  */
-  void (*init_reg) (struct gdbarch *, int, struct dwarf2_frame_state_reg *,
-		    const frame_info_ptr &)
-    = dwarf2_frame_default_init_reg;
+  init_reg_ftype *init_reg = dwarf2_frame_default_init_reg;
 
   /* Check whether the THIS_FRAME is a signal trampoline.  */
-  int (*signal_frame_p) (struct gdbarch *, const frame_info_ptr &) = nullptr;
+  signal_frame_p_ftype *signal_frame_p = nullptr;
 
   /* Convert .eh_frame register number to DWARF register number, or
      adjust .debug_frame register number.  */
-  int (*adjust_regnum) (struct gdbarch *, int, int) = nullptr;
+  adjust_regnum_ftype *adjust_regnum = nullptr;
 };
 
 /* Per-architecture data key.  */
@@ -656,14 +654,9 @@ dwarf2_frame_default_init_reg (struct gdbarch *gdbarch, int regnum,
    function for GDBARCH to INIT_REG.  */
 
 void
-dwarf2_frame_set_init_reg (struct gdbarch *gdbarch,
-			   void (*init_reg) (struct gdbarch *, int,
-					     struct dwarf2_frame_state_reg *,
-					     const frame_info_ptr &))
+dwarf2_frame_set_init_reg (gdbarch *gdbarch, init_reg_ftype *init_reg)
 {
-  struct dwarf2_frame_ops *ops = get_frame_ops (gdbarch);
-
-  ops->init_reg = init_reg;
+  get_frame_ops (gdbarch)->init_reg = init_reg;
 }
 
 /* Pre-initialize the register state REG for register REGNUM.  */
@@ -673,22 +666,17 @@ dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
 		       struct dwarf2_frame_state_reg *reg,
 		       const frame_info_ptr &this_frame)
 {
-  struct dwarf2_frame_ops *ops = get_frame_ops (gdbarch);
-
-  ops->init_reg (gdbarch, regnum, reg, this_frame);
+  get_frame_ops (gdbarch)->init_reg (gdbarch, regnum, reg, this_frame);
 }
 
 /* Set the architecture-specific signal trampoline recognition
    function for GDBARCH to SIGNAL_FRAME_P.  */
 
 void
-dwarf2_frame_set_signal_frame_p (struct gdbarch *gdbarch,
-				 int (*signal_frame_p) (struct gdbarch *,
-							const frame_info_ptr &))
+dwarf2_frame_set_signal_frame_p (gdbarch *gdbarch,
+				 signal_frame_p_ftype *signal_frame_p)
 {
-  struct dwarf2_frame_ops *ops = get_frame_ops (gdbarch);
-
-  ops->signal_frame_p = signal_frame_p;
+  get_frame_ops (gdbarch)->signal_frame_p = signal_frame_p;
 }
 
 /* Query the architecture-specific signal frame recognizer for
@@ -710,13 +698,10 @@ dwarf2_frame_signal_frame_p (struct gdbarch *gdbarch,
    register numbers.  */
 
 void
-dwarf2_frame_set_adjust_regnum (struct gdbarch *gdbarch,
-				int (*adjust_regnum) (struct gdbarch *,
-						      int, int))
+dwarf2_frame_set_adjust_regnum (gdbarch *gdbarch,
+				adjust_regnum_ftype *adjust_regnum)
 {
-  struct dwarf2_frame_ops *ops = get_frame_ops (gdbarch);
-
-  ops->adjust_regnum = adjust_regnum;
+  get_frame_ops (gdbarch)->adjust_regnum = adjust_regnum;
 }
 
 /* Translate a .eh_frame register to DWARF register, or adjust a .debug_frame
@@ -730,6 +715,7 @@ dwarf2_frame_adjust_regnum (struct gdbarch *gdbarch,
 
   if (ops->adjust_regnum == NULL)
     return regnum;
+
   return ops->adjust_regnum (gdbarch, regnum, eh_frame_p);
 }
 
diff --git a/gdb/dwarf2/frame.h b/gdb/dwarf2/frame.h
index 47f9ed88f7c..c3bbfcc03f5 100644
--- a/gdb/dwarf2/frame.h
+++ b/gdb/dwarf2/frame.h
@@ -198,6 +198,11 @@ struct dwarf2_frame_state
   bool armcc_cfa_offsets_reversed = false;
 };
 
+using init_reg_ftype = void (gdbarch *, int, dwarf2_frame_state_reg *,
+			     const frame_info_ptr &);
+using signal_frame_p_ftype = int (gdbarch *, const frame_info_ptr &);
+using adjust_regnum_ftype = int (gdbarch *, int, int);
+
 /* If DWARF supoprt was requested, create the real prototype for the
    append_unwinders function.  Otherwise, create a fake inline function.
 
@@ -210,25 +215,19 @@ struct dwarf2_frame_state
 /* Set the architecture-specific register state initialization
    function for GDBARCH to INIT_REG.  */
 
-extern void dwarf2_frame_set_init_reg (
-  gdbarch *gdbarch, void (*init_reg) (struct gdbarch *, int,
-				      dwarf2_frame_state_reg *,
-				      const frame_info_ptr &));
+void dwarf2_frame_set_init_reg (gdbarch *gdbarch, init_reg_ftype *init_reg);
 
 /* Set the architecture-specific signal trampoline recognition
    function for GDBARCH to SIGNAL_FRAME_P.  */
 
-extern void dwarf2_frame_set_signal_frame_p
-  (gdbarch *gdbarch, int (*signal_frame_p) (struct gdbarch *,
-			  const frame_info_ptr &));
+void dwarf2_frame_set_signal_frame_p (gdbarch *gdbarch,
+				      signal_frame_p_ftype *signal_frame_p);
 
 /* Set the architecture-specific adjustment of .eh_frame and .debug_frame
    register numbers.  */
 
-extern void
-  dwarf2_frame_set_adjust_regnum (struct gdbarch *gdbarch,
-				  int (*adjust_regnum) (struct gdbarch *,
-							int, int));
+void dwarf2_frame_set_adjust_regnum (struct gdbarch *gdbarch,
+				     adjust_regnum_ftype *adjust_regnum);
 
 /* Append the DWARF-2 frame unwinders to GDBARCH's list.  */
 
@@ -300,10 +299,10 @@ extern void *dwarf2_frame_get_fn_data (const frame_info_ptr &this_frame,
 
 static inline void dwarf2_append_unwinders (struct gdbarch *gdbarch) { }
 
-static inline void dwarf2_frame_set_init_reg (
-  gdbarch *gdbarch, void (*init_reg) (struct gdbarch *,int,
-				      dwarf2_frame_state_reg *,
-				      const frame_info_ptr &)) { }
+static inline void
+dwarf2_frame_set_init_reg (gdbarch *gdbarch, init_reg_ftype *init_reg)
+{
+}
 
 static inline const struct frame_base *
   dwarf2_frame_base_sniffer (const frame_info_ptr &this_frame)
@@ -312,9 +311,11 @@ static inline const struct frame_base *
   return nullptr;
 }
 
-static inline void dwarf2_frame_set_signal_frame_p
-  (gdbarch *gdbarch, int (*signal_frame_p) (struct gdbarch *,
-			  const frame_info_ptr &)) { }
+static inline void
+dwarf2_frame_set_signal_frame_p (gdbarch *gdbarch,
+				 signal_frame_p_ftype *signal_frame_p)
+{
+}
 
 static inline void *dwarf2_frame_get_fn_data (const frame_info_ptr &this_frame,
 					      void **this_cache,
@@ -341,10 +342,10 @@ dwarf2_fetch_cfa_info (struct gdbarch *gdbarch, CORE_ADDR pc,
 }
 
 static inline void
-  dwarf2_frame_set_adjust_regnum (struct gdbarch *gdbarch,
-				  int (*adjust_regnum) (struct gdbarch *,
-							int, int))
-{}
+dwarf2_frame_set_adjust_regnum (struct gdbarch *gdbarch,
+				adjust_regnum_ftype *adjust_regnum)
+{
+}
 
 #endif /* DWARF_FORMAT_AVAILABLE */
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.