[gdb/testsuite] Fix gdb.reverse/i387-env-reverse.exp for -pie
authorTom de Vries <tdevries@suse.de>
Mon, 27 Jun 2022 10:47:26 +0000 (12:47 +0200)
committerTom de Vries <tdevries@suse.de>
Mon, 27 Jun 2022 10:47:26 +0000 (12:47 +0200)
When running test-case gdb.reverse/i387-env-reverse.exp for x86_64-linux with
target board unix/-m32/-fPIE/-pie, we run into:
...
(gdb) PASS: gdb.reverse/i387-env-reverse.exp: push st0
info register eax^M
eax            0x56550000          1448411136^M
(gdb) FAIL: gdb.reverse/i387-env-reverse.exp: verify eax == 0x8040000
...

The problem is that the tested instruction (fstsw) only sets $ax, not $eax.

Fix this by verifying $ax instead of $eax.

Tested on x86_64-linux with target boards unix/-m32 and unix/-m32/-fPIE/-pie.

gdb/testsuite/gdb.reverse/i387-env-reverse.exp

index a0a79c22ed075e6f6567777f4f24c769c164c363..53fee0986dfca111bc102610927036ebbbf3f378 100644 (file)
@@ -64,7 +64,7 @@ with_test_prefix "forward" {
     gdb_test "n" "asm.*fstsw.*"               "store status word in EAX"
     gdb_test "n" "asm.*fld1.*"                "push st0"
 
-    gdb_test "info register eax" "eax *0x8040000.*\[ \t\]+.*"  "verify eax == 0x8040000"
+    gdb_test "info register ax" "ax *0x0.*\[ \t\]+.*"  "verify eax == 0x0"
     gdb_test "info register fstat" "fstat *0.*\[ \t\]+.*"      "verify fstat == 0"
     gdb_test "info register ftag" "ftag *0xffff.*\[ \t\]+.*"   "verify ftag == 0xffff"