This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] s390-vregs.exp: Fix Tcl error after non-zero-pad patch


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=031ed05dd2756557c3f5cda6690a9f3220918ffb

commit 031ed05dd2756557c3f5cda6690a9f3220918ffb
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date:   Mon Jul 24 18:35:30 2017 +0200

    s390-vregs.exp: Fix Tcl error after non-zero-pad patch
    
    s390-vregs.exp yields a Tcl error:
    
      ERROR: can't read "i": no such variable
          while executing
      "expr $a_high * ($i + 1) * $a_high "
          (procedure "hex128" line 2)
          invoked from within
      "hex128 $a_high $a_low $b_high $b_low"
      ...
    
    This is a regression, caused by commit 30a254669b16b8 -- "Don't always
    zero pad in print_*_chars".  That patch introduced a new procedure
    "hex128" for formatting a 128-bit value as hex, but it accidentally moved
    the calculation of the 128-bit value into that new procedure as well
    instead of leaving it in the original context.  This is fixed.
    
    gdb/testsuite/ChangeLog:
    
    	* gdb.arch/s390-vregs.exp: Calculate parameters to hex128 in the
    	calling context.
    	(hex128): Drop erroneous calculation of parameters.

Diff:
---
 gdb/testsuite/ChangeLog               |  6 ++++++
 gdb/testsuite/gdb.arch/s390-vregs.exp | 18 ++++++++++--------
 2 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 273d1f7..1e13687 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2017-07-24  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* gdb.arch/s390-vregs.exp: Calculate parameters to hex128 in the
+	calling context.
+	(hex128): Drop erroneous calculation of parameters.
+
 2017-07-22  Simon Marchi  <simon.marchi@ericsson.com>
 
 	* gdb.python/py-unwind.exp: Disable stack protection when
diff --git a/gdb/testsuite/gdb.arch/s390-vregs.exp b/gdb/testsuite/gdb.arch/s390-vregs.exp
index 078c153..d2c31e1 100644
--- a/gdb/testsuite/gdb.arch/s390-vregs.exp
+++ b/gdb/testsuite/gdb.arch/s390-vregs.exp
@@ -147,14 +147,12 @@ gdb_continue_to_breakpoint "change vrs"
 set vregs [capture_command_output "info registers vector" ""]
 
 # Format a 128-bit value, given individual 4-byte values, as hex.
-# Leading zeros are suppressed.
+# Suppress leading zeros.
 proc hex128 {a_high a_low b_high b_low} {
-    set result [format %08x%08x%08x%08x \
-		    [expr $a_high * ($i + 1) * $a_high ] \
-		    [expr $a_low * ($i + 1) * $a_low ] \
-		    [expr $b_high * (32 - $i) * $b_high * 32] \
-		    [expr $b_low * (32 - $i) * $b_low * 32] ]
-    return [regsub -- "^0*" $result ""]
+    set result [format "%x%08x%08x%08x" $a_high $a_low $b_high $b_low]
+    regsub -- "^0*" $result "" result
+    if { $result eq "" } { set result 0 }
+    return $result
 }
 
 set j 1
@@ -162,7 +160,11 @@ foreach {- r i val} [regexp -all -inline -line \
 			 {^(\D*)(\d+)\s+.*?uint128 = 0x([0-9a-f]+?)} $vregs] {
     if { $r ne "v" } {
 	fail "info registers vector: bad line $j"
-    } elseif { $val ne [hex128 $a_high $a_low $b_high $b_low] } {
+    } elseif { $val ne [hex128 \
+			    [expr $a_high * ($i + 1) * $a_high ] \
+			    [expr $a_low * ($i + 1) * $a_low ] \
+			    [expr $b_high * (32 - $i) * $b_high * 32] \
+			    [expr $b_low * (32 - $i) * $b_low * 32] ] } {
 	fail "compare \$v$i"
     }
     incr j 1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]