Fix register selection in var-access.exp
authorAndreas Arnez <arnez@linux.vnet.ibm.com>
Wed, 14 Jun 2017 12:24:03 +0000 (14:24 +0200)
committerAndreas Arnez <arnez@linux.vnet.ibm.com>
Wed, 14 Jun 2017 12:24:31 +0000 (14:24 +0200)
The new test var-access.exp causes FAILs on i686.  This is because the
test chooses the wrong name for DWARF register number 1: It uses
"edx" (which corresponds to DWARF register number 2), but should have used
"ecx" instead.

Also, the current logic in var-access.exp does not correctly distinguish
between a 64-bit and a 32-bit program on an x86-64 target.  It uses the
64-bit register names for both.

These problems are fixed.  In order to address the latter, the convenience
macros is_*_target are exploited where appropriate.

gdb/testsuite/ChangeLog:

* gdb.dwarf2/var-access.exp: Use register name ecx instead of edx
on 32-bit x86 targets.  Exploit is_*_target macros where
appropriate.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.dwarf2/var-access.exp

index e5d303c7920959102e30bd35ac1b024cfe3d3217..ff54199504c6386187925f93112ad2504390bd3f 100644 (file)
@@ -1,3 +1,9 @@
+2017-06-14  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+       * gdb.dwarf2/var-access.exp: Use register name ecx instead of edx
+       on 32-bit x86 targets.  Exploit is_*_target macros where
+       appropriate.
+
 2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
 
        * gdb.dwarf2/var-access.exp: Add test for non-byte-aligned
index 07516fc8e3a368720b4725fa70aa10033698ab1d..8ebad6a1f56fe24a686804cd7c2a63aacd90d088 100644 (file)
@@ -28,16 +28,16 @@ if {![dwarf2_support]} {
 
 set dwarf_regnum {0 1}
 
-if { [istarget "aarch64*-*-*"] } {
+if { [is_aarch64_target] } {
     set regname {x0 x1}
-} elseif { [istarget "arm*-*-*"]
+} elseif { [is_aarch32_target]
           || [istarget "s390*-*-*" ]
           || [istarget "powerpc*-*-*"]
           || [istarget "rs6000*-*-aix*"] } {
     set regname {r0 r1}
-} elseif { [istarget "i?86-*-*"] } {
-    set regname {eax edx}
-} elseif { [istarget "x86_64-*-*"] } {
+} elseif { [is_x86_like_target] } {
+    set regname {eax ecx}
+} elseif { [is_amd64_regs_target] } {
     set regname {rax rdx}
 } else {
     verbose "Skipping tests for accessing DWARF-described variables."