mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-05 12:53:16 +08:00
[gdb/testsuite] Add KFAIL for PR ada/30908
With gcc 13.2.1, I run into a cluster of fails: ... FAIL: gdb.ada/str_binop_equal.exp: print my_str = "ABCD" FAIL: gdb.ada/widewide.exp: print my_wws = " helo" FAIL: gdb.ada/widewide.exp: print my_ws = "wide" ... The problem is that the debug info contains information about function ada.strings.maps."=", and gdb uses it to implement the comparison. The function is supposed to compare two char sets, not strings, so gdb shouldn't use it. This is PR ada/30908. I don't see the same problem with gcc 7.5.0, because the exec doesn't contain the debug info for the function, because the corresponding object is not linked in. Adter adding "with Ada.Strings.Maps; use Ada.Strings.Maps;" to gdb.ada/widewide/foo.adb I run into the same problem with gcc 7.5.0. Add KFAILs for the PR. Tested on x86_64-linux: - openSUSE Leap 15.4 (using gcc 7.5.0), and - openSUSE Tumbleweed (using gcc 13.2.1). Approved-By: Tom Tromey <tom@tromey.com> Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30908
This commit is contained in:
parent
59912fb2d2
commit
89238cfdba
@ -31,8 +31,24 @@ runto "foo_p211_061.adb:$bp_location"
|
||||
gdb_test "print my_str = my_str" \
|
||||
" = true"
|
||||
|
||||
gdb_test "print my_str = \"ABCD\"" \
|
||||
" = true"
|
||||
set kfail_re \
|
||||
[multi_line \
|
||||
[string_to_regexp {Symbol: ada.strings.maps."="}] \
|
||||
".*" \
|
||||
"\\$$decimal = false"]
|
||||
|
||||
gdb_test_no_output "set debug expr 1"
|
||||
|
||||
gdb_test_multiple {print my_str = "ABCD"} "" {
|
||||
-re -wrap " = true" {
|
||||
pass $gdb_test_name
|
||||
}
|
||||
-re -wrap $kfail_re {
|
||||
kfail ada/30908 $gdb_test_name
|
||||
}
|
||||
}
|
||||
|
||||
gdb_test "set debug expr 0"
|
||||
|
||||
gdb_test "print my_str = \"EFGH\"" \
|
||||
" = false"
|
||||
|
@ -42,9 +42,33 @@ gdb_test "print my_wws(1)" "= 32 ' '"
|
||||
|
||||
gdb_test "print my_wws(2)" "= 104 'h'"
|
||||
|
||||
gdb_test "print my_wws = \" helo\"" " = true"
|
||||
set kfail_re \
|
||||
[multi_line \
|
||||
[string_to_regexp {Symbol: ada.strings.maps."="}] \
|
||||
".*" \
|
||||
"\\$$decimal = false"]
|
||||
|
||||
gdb_test_no_output "set debug expr 1"
|
||||
|
||||
gdb_test_multiple {print my_wws = " helo"} "" {
|
||||
-re -wrap " = true" {
|
||||
pass $gdb_test_name
|
||||
}
|
||||
-re -wrap $kfail_re {
|
||||
kfail ada/30908 $gdb_test_name
|
||||
}
|
||||
}
|
||||
gdb_test_multiple {print my_ws = "wide"} "" {
|
||||
-re -wrap " = true" {
|
||||
pass $gdb_test_name
|
||||
}
|
||||
-re -wrap $kfail_re {
|
||||
kfail ada/30908 $gdb_test_name
|
||||
}
|
||||
}
|
||||
|
||||
gdb_test "set debug expr 0"
|
||||
|
||||
gdb_test "print my_ws = \"wide\"" " = true"
|
||||
gdb_test "print my_ws = \"nope\"" " = false"
|
||||
|
||||
gdb_test "print \"x\" & my_ws & \"y\"" " = \"xwidey\""
|
||||
|
Loading…
Reference in New Issue
Block a user