[gdb/testsuite] Fix count usage in gdb.reverse/insn-reverse.exp
authorTom de Vries <tdevries@suse.de>
Fri, 4 Dec 2020 12:36:47 +0000 (13:36 +0100)
committerTom de Vries <tdevries@suse.de>
Fri, 4 Dec 2020 12:36:47 +0000 (13:36 +0100)
Consider the test-case gdb.reverse/insn-reverse.exp.

After the loop setting count, the valid entries in various arrays range from 0
to $count - 1 inclusive.

Then $count is decremented:
...
       incr count -1
...
after which the valid entries range from 0 to $count inclusive.

The first subsequent loop handles that properly:
...
       for {set i $count} {$i >= 0} {incr i -1} {
...
but the following loop does not, because it treats $count as exclusive bound:
...
for {set i 0} {$i < $count} {incr i} {
...

Fix this by removing the incr, and using $count - 1 as starting value in the
first loop.

gdb/testsuite/ChangeLog:

2020-12-04  Tom de Vries  <tdevries@suse.de>

* gdb.reverse/insn-reverse.exp: Fix count handling.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.reverse/insn-reverse.exp

index e7408a033ebc70a3055f61ae5af6fe33bfc42c65..a88668d9b4e15824cd010907b734003b55ff5b1d 100644 (file)
@@ -1,3 +1,7 @@
+2020-12-04  Tom de Vries  <tdevries@suse.de>
+
+       * gdb.reverse/insn-reverse.exp: Fix count handling.
+
 2020-12-04  Tom de Vries  <tdevries@suse.de>
 
        * gdb.reverse/insn-reverse-x86.c: Guard x86_64 assembly with #ifdef
index d60f873e0d076004390ffce5012ed4bb034bf011..583195263caef2f8b8428db56f8b338c52fe8585 100644 (file)
@@ -102,9 +102,8 @@ proc test { func testcase_nr } {
            gdb_test "si" "" ""
        }
 
-       incr count -1
        # Registers contents after each backward single step.
-       for {set i $count} {$i >= 0} {incr i -1} {
+       for {set i [expr $count - 1]} {$i >= 0} {incr i -1} {
            gdb_test "reverse-stepi" "" ""
            set post_regs($i) [capture_command_output "info all-registers" ""]
        }