From 874f4887f0361e953f7098459ae60a5f894d362a Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Mon, 25 Mar 2024 15:28:35 +0100 Subject: [gdb/testsuite] Fix gdb.ada/tagged-lookup.exp with gcc <= 12 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. Approved-By: Tom Tromey 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(-) diff --git a/gdb/testsuite/gdb.ada/tagged-lookup.exp b/gdb/testsuite/gdb.ada/tagged-lookup.exp index 4bc088b..3803319 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 -- cgit v1.1