[gdb/testsuite] Fix gdb.ada/tagged-lookup.exp with gcc <= 12

Message ID 20240325140528.28786-1-tdevries@suse.de
State Committed
Headers
Series [gdb/testsuite] Fix gdb.ada/tagged-lookup.exp with gcc <= 12 |

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

Tom de Vries March 25, 2024, 2:05 p.m. UTC
  With gcc 13, test-case gdb.ada/tagged-lookup.exp passes for me, but with gcc
12, I get:
...
(gdb) set debug symtab-create 1^M
(gdb) print *the_local_var^M
  ...
$1 = (n => 2)^M
(gdb) FAIL: gdb.ada/tagged-lookup.exp: only one CU expanded
...

The problem is that this fails:
...
    -re -wrap ".* = \\\(n => $decimal\\\)" {
	if {$found_pck + $found_pck2 == 1} {
	    pass $gdb_test_name
	} else {
	    fail $gdb_test_name
	}
...
because $found_pck == 0 and $found_pck2 == 0.

Indeed, with gcc 13 we have:
...
$ grep "start_subfile: name = .*/tagged-lookup/" gdb.log | sed 's%.*/%%'
b~foo.adb
b~foo.adb
b~foo.adb
b~foo.ads
pck2.adb
pck2.adb
pck2.ads
pck2.adb
pck2.ads
...
and with gcc 12:
...
$ grep "start_subfile: name = .*/tagged-lookup/" gdb.log | sed 's%.*/%%'
b~foo.adb
b~foo.adb
b~foo.adb
b~foo.ads
...

Fix this by checking for "$found_pck + $found_pck2 <= 1" instead.

Tested on x86_64-linux.

PR testsuite/31514
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31514
---
 gdb/testsuite/gdb.ada/tagged-lookup.exp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


base-commit: 61ced226a4fc2e6df7836cd9c0f7e1ad47af2440
  

Comments

Tom Tromey March 25, 2024, 2:19 p.m. UTC | #1
>>>>> "Tom" == Tom de Vries <tdevries@suse.de> writes:

Tom> Fix this by checking for "$found_pck + $found_pck2 <= 1" instead.

Tom> Tested on x86_64-linux.

Tom> PR testsuite/31514
Tom> Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31514

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

Tom
  

Patch

diff --git a/gdb/testsuite/gdb.ada/tagged-lookup.exp b/gdb/testsuite/gdb.ada/tagged-lookup.exp
index 4bc088ba8d5..3803319c505 100644
--- a/gdb/testsuite/gdb.ada/tagged-lookup.exp
+++ b/gdb/testsuite/gdb.ada/tagged-lookup.exp
@@ -52,7 +52,7 @@  gdb_test_multiple "print *the_local_var" "only one CU expanded" -lbl {
 	exp_continue
     }
     -re -wrap ".* = \\\(n => $decimal\\\)" {
-	if {$found_pck + $found_pck2 == 1} {
+	if {$found_pck + $found_pck2 <= 1} {
 	    pass $gdb_test_name
 	} else {
 	    fail $gdb_test_name