[gdb/testsuite] Fix gdb.base/store.exp with gcc-10

When running gdb.base/store.exp with gcc-10 instead of gcc-9, we have:
...
 (gdb) PASS: gdb.base/store.exp: continue to wack_double
 print l^M
-$22 = <optimized out>^M
+$22 = -1^M
-(gdb) UNSUPPORTED: gdb.base/store.exp: var double l; print old l, expecting -1
-(gdb) PASS: gdb.base/store.exp: var double l; print old l, expecting -1
+print r^M
+$23 = <optimized out>^M
+(gdb) FAIL: gdb.base/store.exp: var double l; print old r, expecting -2
...

With gcc-9, there's no location info for both l and r, but with gcc-10,
there's location info for l, but not r.

The test-case only checks for location info availability of l, and then
assumes location info for r is also available.

Fix this by allowing missing location info for r.

Tested on x86_64-linux.

gdb/testsuite/ChangeLog:

2020-05-06  Tom de Vries  <tdevries@suse.de>

	* gdb.base/store.exp (check_set, up_set): Allowing missing location
	info for r.
This commit is contained in:
Tom de Vries 2020-05-06 13:49:34 +02:00
parent 0fc2a808cb
commit abf6d805a0
2 changed files with 41 additions and 16 deletions

View File

@ -1,3 +1,8 @@
2020-05-06 Tom de Vries <tdevries@suse.de>
* gdb.base/store.exp (check_set, up_set): Allowing missing location
info for r.
2020-05-06 Tom de Vries <tdevries@suse.de>
* gdb.base/shlib-call.exp: Add extra step to reach shmain.c:42, if

View File

@ -55,26 +55,37 @@ proc check_set { t l r new add } {
}
}
set supported 1
set supported_l 1
set test "${prefix}; print old l, expecting ${l}"
gdb_test_multiple "print l" "$test" {
-re " = <optimized out>\r\n$gdb_prompt $" {
-re -wrap " = <optimized out>" {
unsupported $test
set supported 0
set supported_l 0
}
-re " = ${l}\r\n$gdb_prompt $" {
-re -wrap " = ${l}" {
pass $test
}
}
if { $supported } {
gdb_test "print r" " = ${r}" \
"${prefix}; print old r, expecting ${r}"
set test "${prefix}; print old r, expecting ${r}"
gdb_test_multiple "print r" "$test" {
-re -wrap " = <optimized out>" {
unsupported $test
}
-re -wrap " = ${r}" {
pass $test
}
}
if { $supported_l } {
gdb_test_no_output "set variable l = 4" \
"${prefix}; setting l to 4"
gdb_test "print l" " = ${new}" \
"${prefix}; print new l, expecting ${new}"
gdb_test "next" "return l \\+ r;" \
"${prefix}; next over add call"
}
gdb_test "next" "return l \\+ r;" \
"${prefix}; next over add call"
if { $supported_l } {
gdb_test "print l" " = ${add}" \
"${prefix}; print incremented l, expecting ${add}"
}
@ -101,20 +112,29 @@ proc up_set { t l r new } {
gdb_test "up" "l = add_${t} .l, r.;" \
"${prefix}; up"
set supported 1
set supported_l 1
set test "${prefix}; print old l, expecting ${l}"
gdb_test_multiple "print l" "$test" {
-re " = <optimized out>\r\n$gdb_prompt $" {
-re -wrap " = <optimized out>" {
unsupported $test
set supported 0
set supported_l 0
}
-re " = ${l}\r\n$gdb_prompt $" {
-re -wrap " = ${l}" {
pass $test
}
}
if { $supported } {
gdb_test "print r" " = ${r}" \
"${prefix}; print old r, expecting ${r}"
set test "${prefix}; print old r, expecting ${r}"
gdb_test_multiple "print r" "$test" {
-re -wrap " = <optimized out>" {
unsupported $test
}
-re -wrap " = ${r}" {
pass $test
}
}
if { $supported_l } {
gdb_test_no_output "set variable l = 4" \
"${prefix}; set l to 4"
gdb_test "print l" " = ${new}" \