[ver,2] Fix gdb.ada/O2_float_param.exp for PowerPC

Message ID cfd3181352e66caa08336e47c888cb77e638d9a7.camel@us.ibm.com
State New
Headers
Series [ver,2] Fix gdb.ada/O2_float_param.exp for PowerPC |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gdb_build--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_gdb_build--master-arm success Testing passed
linaro-tcwg-bot/tcwg_gdb_check--master-arm success Testing passed
linaro-tcwg-bot/tcwg_gdb_check--master-aarch64 success Testing passed

Commit Message

Carl Love Aug. 4, 2023, 11:12 p.m. UTC
  GDB maintainers:

Version 2, updated the comment in
gdb/testsuite/gdb.ada/O2_float_param.exp to explain the conditions that
cause gdb to print the address or not.

The gdb.ada/O2_float_param.exp for PowerPC test fails due to a
difference in the output of the frame command.  On PowerPC, the frame
command prints the address in addition to the rest of the information. 
The address is not printed on X86.  This patch updates the expect
string to account for the presence or absence of the address in the
output.

The patch fixes two failures in the test on PowerPC.  The patch has
been regression tested on Power 10 with no additional failures.

Please let me know if this patch is acceptable for mainline.  Thanks.

                     Carl 

-----------------------------
Fix gdb.ada/O2_float_param.exp for PowerPC

The frame command on PowerPc prints the address in hex before the
location.  The output on PowerPC looks like:

(gdb) frame
0  0x0000000010010a88 in callee.increment (val=val@entry=99.0, msg=...) at /..../gdb/testsuite/gdb.ada/O2_float_param/callee.adb:19
19         procedure Increment (Val : in out Float; Msg: String) is

The printing of the address for the frame is done by function
print_frame in gdb/stack.c.  If SAL.IS_stmt is false for the frame,
function frame_show_address returns true and print_frame prints the
address.  Currently, SAL.IS is false on PowerPC and true on X86-64.

Update the set re string to accept the hex address if it exits.

Fixes two failures on PowerPC.

Patch tested on Power10 with no new regressions.
---
 gdb/testsuite/gdb.ada/O2_float_param.exp | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
  

Comments

Tom Tromey Aug. 10, 2023, 4:14 p.m. UTC | #1
>>>>> "Carl" == Carl Love via Gdb-patches <gdb-patches@sourceware.org> writes:

Carl> Please let me know if this patch is acceptable for mainline.  Thanks.

Thank you.
Approved-By: Tom Tromey <tom@tromey.com>

Tom
  

Patch

diff --git a/gdb/testsuite/gdb.ada/O2_float_param.exp b/gdb/testsuite/gdb.ada/O2_float_param.exp
index ac6df7e3ab9..7ae872bb44e 100644
--- a/gdb/testsuite/gdb.ada/O2_float_param.exp
+++ b/gdb/testsuite/gdb.ada/O2_float_param.exp
@@ -39,8 +39,15 @@  foreach_with_prefix scenario {all minimal} {
 
     runto "increment"
 
+    # If SAL.IS_STMT is false for the frame, function frame_show_address will
+    # return true and function print_frame in gdb/stack.c will print the
+    # address.  In this case, the output will look something like:
+    # #0  0x0000000010010a88 in callee.increment (val=val@entry=99.0, msg=...)
+    # This situation currently occurs on PowerPC but not on X86-64.
+    # The re string needs to account for the possibility that the address
+    # will be printed.
     set re \
-	"#0\\s+callee\\.increment \\(val(=val@entry)?=99\\.0, msg=\\.\\.\\.\\).*"
+	"#0.*callee\\.increment \\(val(=val@entry)?=99\\.0, msg=\\.\\.\\.\\).*"
     set re_different_entry_val \
        "#0\\s+callee\\.increment \\(val=99.0, val@entry=.*, msg=\\.\\.\\.\\).*"
     gdb_test_multiple "frame" "" {