]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
gdb: fix refactoring hiccup in rs6000_register_to_value
authorKévin Le Gouguec <legouguec@adacore.com>
Fri, 22 Dec 2023 13:06:15 +0000 (14:06 +0100)
committerKévin Le Gouguec <legouguec@adacore.com>
Fri, 22 Dec 2023 16:19:29 +0000 (17:19 +0100)
In 2023-12-14 "gdb: make get_frame_register_bytes take the next frame"
(9fc79b42369), *_register_to_value functions were made to (a) call
get_next_frame_sentinel_okay (frame) (b) pass that next frame to
get_frame_register_bytes.

Step (b) was omitted for rs6000-tdep.c; this manifests as a regression on
PPC platforms for e.g. O2_float_param: instead of seeing…

  Temporary breakpoint 1, callee.increment (val=val@entry=99.0, msg=...) at callee.adb:19

… we get "optimized_out" for val.  Passing next_frame to
get_frame_register_bytes fixes the issue.

Approved-By: Simon Marchi <simon.marchi@efficios.com>
gdb/rs6000-tdep.c

index a7e0bf5305b51749f1bb730dde9afd176fffc7a4..af0ade85242d032e00b37bf7d3daa0c89734a200 100644 (file)
@@ -2716,7 +2716,7 @@ rs6000_register_to_value (frame_info_ptr frame,
   auto from_view
     = gdb::make_array_view (from, register_size (gdbarch, regnum));
   frame_info_ptr next_frame = get_next_frame_sentinel_okay (frame);
-  if (!get_frame_register_bytes (frame, regnum, 0, from_view, optimizedp,
+  if (!get_frame_register_bytes (next_frame, regnum, 0, from_view, optimizedp,
                                 unavailablep))
     return 0;