[1/2] GDB: frame: Make VALUEP argument optional in frame_register_unwind

Message ID 20250110164430.3376697-2-thiago.bauermann@linaro.org
State New
Headers
Series Improvements to a few GDB frame unwind functions |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gdb_build--master-aarch64 fail Patch failed to apply
linaro-tcwg-bot/tcwg_gdb_build--master-arm fail Patch failed to apply

Commit Message

Thiago Jung Bauermann Jan. 10, 2025, 4:43 p.m. UTC
  It already accepts a nullptr value and a couple of places were always
calling it that way, so make it possible to omit the argument entirely.
---
 gdb/frame.c | 4 ++--
 gdb/frame.h | 4 ++--
 gdb/stack.c | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)
  

Comments

Simon Marchi Jan. 10, 2025, 5:02 p.m. UTC | #1
On 2025-01-10 11:43, Thiago Jung Bauermann wrote:
> It already accepts a nullptr value and a couple of places were always
> calling it that way, so make it possible to omit the argument entirely.
> ---
>  gdb/frame.c | 4 ++--
>  gdb/frame.h | 4 ++--
>  gdb/stack.c | 2 +-
>  3 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/gdb/frame.c b/gdb/frame.c
> index a6900b280724..ba4a07179f64 100644
> --- a/gdb/frame.c
> +++ b/gdb/frame.c
> @@ -1447,7 +1447,7 @@ put_frame_register (const frame_info_ptr &next_frame, int regnum,
>    gdb_assert (buf.size () == size);
>  
>    frame_register_unwind (next_frame, regnum, &optim, &unavail, &lval, &addr,
> -			 &realnum, nullptr);
> +			 &realnum);
>    if (optim)
>      error (_("Attempt to assign to a register that was not saved."));
>    switch (lval)
> @@ -2159,7 +2159,7 @@ frame_register_unwind_location (const frame_info_ptr &initial_this_frame,
>        int unavailable;
>  
>        frame_register_unwind (this_frame, regnum, optimizedp, &unavailable,
> -			     lvalp, addrp, realnump, NULL);
> +			     lvalp, addrp, realnump);
>  
>        if (*optimizedp)
>  	break;
> diff --git a/gdb/frame.h b/gdb/frame.h
> index 9b41dd958fa4..b265c9bc5bb3 100644
> --- a/gdb/frame.h
> +++ b/gdb/frame.h
> @@ -685,14 +685,14 @@ const char *unwind_stop_reason_to_string (enum unwind_stop_reason);
>  const char *frame_stop_reason_string (const frame_info_ptr &);
>  
>  /* Unwind the stack frame so that the value of REGNUM, in the previous
> -   (up, older) frame is returned.  If VALUEP is NULL, don't
> +   (up, older) frame is returned.  If VALUEP is nullptr, don't
>     fetch/compute the value.  Instead just return the location of the
>     value.  */
>  extern void frame_register_unwind (const frame_info_ptr &frame, int regnum,
>  				   int *optimizedp, int *unavailablep,
>  				   enum lval_type *lvalp,
>  				   CORE_ADDR *addrp, int *realnump,
> -				   gdb_byte *valuep);
> +				   gdb_byte *valuep = nullptr);
>  
>  /* Fetch a register from this, or unwind a register from the next
>     frame.  Note that the get_frame methods are wrappers to
> diff --git a/gdb/stack.c b/gdb/stack.c
> index 73165c801343..2d6712ab16ba 100644
> --- a/gdb/stack.c
> +++ b/gdb/stack.c
> @@ -1750,7 +1750,7 @@ info_frame_command_core (const frame_info_ptr &fi, bool selected_frame_p)
>  	  /* Find out the location of the saved register without
>  	     fetching the corresponding value.  */
>  	  frame_register_unwind (fi, i, &optimized, &unavailable,
> -				 &lval, &addr, &realnum, NULL);
> +				 &lval, &addr, &realnum);
>  	  /* For moment, only display registers that were saved on the
>  	     stack.  */
>  	  if (!optimized && !unavailable && lval == lval_memory)

Approved-By: Simon Marchi <simon.marchi@efficios.com>

Simon
  
Thiago Jung Bauermann Jan. 10, 2025, 10:23 p.m. UTC | #2
Hello Simon,

Simon Marchi <simark@simark.ca> writes:

> On 2025-01-10 11:43, Thiago Jung Bauermann wrote:
>> It already accepts a nullptr value and a couple of places were always
>> calling it that way, so make it possible to omit the argument entirely.
>> ---
>>  gdb/frame.c | 4 ++--
>>  gdb/frame.h | 4 ++--
>>  gdb/stack.c | 2 +-
>>  3 files changed, 5 insertions(+), 5 deletions(-)
>>
>
> Approved-By: Simon Marchi <simon.marchi@efficios.com>

Thanks! Pushed as commit 53a34429c96d.

--
Thiago
  

Patch

diff --git a/gdb/frame.c b/gdb/frame.c
index a6900b280724..ba4a07179f64 100644
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -1447,7 +1447,7 @@  put_frame_register (const frame_info_ptr &next_frame, int regnum,
   gdb_assert (buf.size () == size);
 
   frame_register_unwind (next_frame, regnum, &optim, &unavail, &lval, &addr,
-			 &realnum, nullptr);
+			 &realnum);
   if (optim)
     error (_("Attempt to assign to a register that was not saved."));
   switch (lval)
@@ -2159,7 +2159,7 @@  frame_register_unwind_location (const frame_info_ptr &initial_this_frame,
       int unavailable;
 
       frame_register_unwind (this_frame, regnum, optimizedp, &unavailable,
-			     lvalp, addrp, realnump, NULL);
+			     lvalp, addrp, realnump);
 
       if (*optimizedp)
 	break;
diff --git a/gdb/frame.h b/gdb/frame.h
index 9b41dd958fa4..b265c9bc5bb3 100644
--- a/gdb/frame.h
+++ b/gdb/frame.h
@@ -685,14 +685,14 @@  const char *unwind_stop_reason_to_string (enum unwind_stop_reason);
 const char *frame_stop_reason_string (const frame_info_ptr &);
 
 /* Unwind the stack frame so that the value of REGNUM, in the previous
-   (up, older) frame is returned.  If VALUEP is NULL, don't
+   (up, older) frame is returned.  If VALUEP is nullptr, don't
    fetch/compute the value.  Instead just return the location of the
    value.  */
 extern void frame_register_unwind (const frame_info_ptr &frame, int regnum,
 				   int *optimizedp, int *unavailablep,
 				   enum lval_type *lvalp,
 				   CORE_ADDR *addrp, int *realnump,
-				   gdb_byte *valuep);
+				   gdb_byte *valuep = nullptr);
 
 /* Fetch a register from this, or unwind a register from the next
    frame.  Note that the get_frame methods are wrappers to
diff --git a/gdb/stack.c b/gdb/stack.c
index 73165c801343..2d6712ab16ba 100644
--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -1750,7 +1750,7 @@  info_frame_command_core (const frame_info_ptr &fi, bool selected_frame_p)
 	  /* Find out the location of the saved register without
 	     fetching the corresponding value.  */
 	  frame_register_unwind (fi, i, &optimized, &unavailable,
-				 &lval, &addr, &realnum, NULL);
+				 &lval, &addr, &realnum);
 	  /* For moment, only display registers that were saved on the
 	     stack.  */
 	  if (!optimized && !unavailable && lval == lval_memory)