0b42f8
commit fd356fa28834fa3a9f22f9157a568264ad045010
0b42f8
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
0b42f8
Date:   Wed Jan 20 19:41:45 2016 +0100
0b42f8
0b42f8
    gnu_vector.exp: Respect `should_kfail' for PR 8549
0b42f8
    
0b42f8
    The gnu_vector test case yields a new FAIL on s390x:
0b42f8
    
0b42f8
      FAIL: gdb.base/gnu_vector.exp: verify vector return value
0b42f8
    
0b42f8
    It was introduced by commit 77ae9c1933b50 "gdb.base/gnu_vector.exp:
0b42f8
    Don't test output from the inferior".  That commit dropped the special
0b42f8
    handling for GDB's inability (on some targets) to set the return value.
0b42f8
    
0b42f8
    This change re-establishes the logic from before, converting the above
0b42f8
    FAIL to a KFAIL (PRMS gdb/8549).
0b42f8
    
0b42f8
    gdb/testsuite/ChangeLog:
0b42f8
    
0b42f8
    	* gdb.base/gnu_vector.exp: Re-establish handling for should_kfail
0b42f8
    	when GDB can not set the vector return value.  Add more comments
0b42f8
    	for clarification.
0b42f8
0b42f8
### a/gdb/testsuite/ChangeLog
0b42f8
### b/gdb/testsuite/ChangeLog
0b42f8
## -1,3 +1,9 @@
0b42f8
+2016-01-20  Andreas Arnez  <arnez@linux.vnet.ibm.com>
0b42f8
+
0b42f8
+	* gdb.base/gnu_vector.exp: Re-establish handling for should_kfail
0b42f8
+	when GDB can not set the vector return value.  Add more comments
0b42f8
+	for clarification.
0b42f8
+
0b42f8
 2016-01-20  Antoine Tremblay  <antoine.tremblay@ericsson.com>
0b42f8
 
0b42f8
 	* gdb.trace/tspeed.exp:  Use shlib instead of libs in gdb_compile
0b42f8
--- a/gdb/testsuite/gdb.base/gnu_vector.exp
0b42f8
+++ b/gdb/testsuite/gdb.base/gnu_vector.exp
0b42f8
@@ -230,6 +230,7 @@ gdb_test_multiple "return (int4) \{4, 2, 7, 6\}" $test {
0b42f8
 	pass $test
0b42f8
     }
0b42f8
     -re "The location .* is unknown.\r\n.* return value .* will be ignored.\r\n" {
0b42f8
+	# This happens, e.g., on s390x unless using the vector ABI.
0b42f8
 	set should_kfail 1
0b42f8
 	exp_continue
0b42f8
     }
0b42f8
@@ -240,4 +241,18 @@ gdb_test_multiple "return (int4) \{4, 2, 7, 6\}" $test {
0b42f8
 }
0b42f8
 
0b42f8
 gdb_test "next" ""
0b42f8
-gdb_test "p res" "\\{4, 2, 7, 6\\}.*" "verify vector return value"
0b42f8
+set test "verify vector return value"
0b42f8
+gdb_test_multiple "p res" $test {
0b42f8
+    -re ".*= \\{4, 2, 7, 6\\}\r\n.*$gdb_prompt $" {
0b42f8
+	pass $test
0b42f8
+    }
0b42f8
+    -re ".*= \\{.*\\}\r\n.*$gdb_prompt $" {
0b42f8
+	if { $should_kfail } {
0b42f8
+	    # GDB had not actually set the return value, likely due to
0b42f8
+	    # PR 8549.  So accept any return value and emit a KFAIL.
0b42f8
+	    kfail "gdb/8549" $test
0b42f8
+	} else {
0b42f8
+	    fail $test
0b42f8
+	}
0b42f8
+    }
0b42f8
+}