[gdb/testsuite] Fix gdb.base/store.exp with gcc-10
authorTom de Vries <tdevries@suse.de>
Wed, 6 May 2020 11:49:34 +0000 (13:49 +0200)
committerTom de Vries <tdevries@suse.de>
Wed, 6 May 2020 11:49:34 +0000 (13:49 +0200)
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.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/store.exp

index b2f90912502fce913c8e89400f1907d7dac77a27..7a62fe8ce77102840eeba091b5512c901f3adac9 100644 (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
index 4708662bff996bc5478969156e90f287330631ab..f3a6c061457924502a2c30d1f26432c395b69e42 100644 (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}" \