S390: Fix infcalls in s390-vregs test case
authorAndreas Arnez <arnez@linux.vnet.ibm.com>
Fri, 19 Jan 2018 18:59:53 +0000 (19:59 +0100)
committerAndreas Arnez <arnez@linux.vnet.ibm.com>
Fri, 19 Jan 2018 18:59:53 +0000 (19:59 +0100)
GDB used to assume that functions without debug info return int.  It
accepted an expression containing such a function call and silently
interpreted the function's return value as int.  But nowadays GDB yields
an error message instead, see

  https://sourceware.org/ml/gdb-patches/2017-07/msg00139.html

This affects the s390-vregs test case, because it contains calls to
setrlimit64 and chdir.  When no glibc debug info is installed, these lead
to unnecessary FAILs.  Fix this by adding appropriate casts to the
inferior function calls.

gdb/testsuite/ChangeLog:

* gdb.arch/s390-vregs.exp: Explicitly cast the return values of
setrlimit and chdir to int.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.arch/s390-vregs.exp

index d510b794a954c4740485d3730d9b633a5492826f..36c49243425574ab0664ffeaae80fc358b30c2c3 100644 (file)
@@ -1,3 +1,8 @@
+2018-01-19  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+       * gdb.arch/s390-vregs.exp: Explicitly cast the return values of
+       setrlimit and chdir to int.
+
 2018-01-19  Andreas Arnez  <arnez@linux.vnet.ibm.com>
 
        * gdb.arch/s390-tdbregs.c (my_tbegin): Add comment documenting the
index 915fcfca6574d95e67db95ea067eb22c46776a3e..1fdb5c04a80aa7c995e6c9d14430bfcc344ee48a 100644 (file)
@@ -83,9 +83,9 @@ if [expr $before_pc + 6 != $after_pc] {
 # directory.
 
 if { $coredir != "" } {
-    gdb_test {print setrlimit (4, &(unsigned long [2]){~0UL, ~0UL})} \
+    gdb_test {print (int) setrlimit (4, &(unsigned long [2]){~0UL, ~0UL})} \
        " = .*" "setrlimit"
-    gdb_test "print chdir (\"${coredir}\")" " = 0" "chdir"
+    gdb_test "print (int) chdir (\"${coredir}\")" " = 0" "chdir"
 }
 
 # Initialize all vector registers with GDB "set" commands, using