Index: gdb/testsuite/gdb.base/callfuncs.exp |
diff --git a/gdb/testsuite/gdb.base/callfuncs.exp b/gdb/testsuite/gdb.base/callfuncs.exp |
index daaad1aebe2138529f32d5d57ba65e93f9c834fd..e3f49f98b1752a2dcab103d5cd7a097aaf873014 100644 |
--- a/gdb/testsuite/gdb.base/callfuncs.exp |
+++ b/gdb/testsuite/gdb.base/callfuncs.exp |
@@ -1,4 +1,4 @@ |
-# Copyright 1992, 1994-2004, 2007-2012 Free Software Foundation, Inc. |
+# Copyright 1992-2013 Free Software Foundation, Inc. |
# This program is free software; you can redistribute it and/or modify |
# it under the terms of the GNU General Public License as published by |
@@ -16,9 +16,7 @@ |
# This file was written by Fred Fish. (fnf@cygnus.com) |
# and modified by Bob Manson. (manson@cygnus.com) |
-set testfile "callfuncs" |
-set srcfile ${testfile}.c |
-set binfile ${objdir}/${subdir}/${testfile} |
+standard_testfile |
set compile_flags {debug} |
if [support_complex_tests] { |
@@ -34,7 +32,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $com |
# used to compile the test case. |
if [get_compiler_info] { |
- return -1; |
+ return -1 |
} |
if {$hp_aCC_compiler} { |
@@ -63,7 +61,11 @@ proc do_function_calls {} { |
global gdb_prompt |
# We need to up this because this can be really slow on some boards. |
- set timeout 60; |
+ set timeout 60 |
+ |
+ # If any of these calls segv we don't want to affect subsequent tests. |
+ # E.g., we want to ensure register values are restored. |
+ gdb_test_no_output "set unwindonsignal on" |
gdb_test "p t_char_values(0,0)" " = 0" |
gdb_test "p t_char_values('a','b')" " = 1" |
@@ -145,19 +147,15 @@ proc do_function_calls {} { |
} |
if [support_complex_tests] { |
- setup_kfail_for_target gdb/12798 "x86_64-*-*" |
gdb_test "p t_float_complex_values(fc1, fc2)" " = 1" |
gdb_test "p t_float_complex_values(fc3, fc4)" " = 0" |
- setup_kfail_for_target gdb/12800 "x86_64-*-*" |
gdb_test "p t_float_complex_many_args(fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4)" " = 1" |
gdb_test "p t_float_complex_many_args(fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1)" " = 0" |
- setup_kfail_for_target gdb/12798 "x86_64-*-*" |
gdb_test "p t_double_complex_values(dc1, dc2)" " = 1" |
gdb_test "p t_double_complex_values(dc3, dc4)" " = 0" |
- setup_kfail_for_target gdb/12800 "x86_64-*-*" |
gdb_test "p t_double_complex_many_args(dc1, dc2, dc3, dc4, dc1, dc2, dc3, dc4, dc1, dc2, dc3, dc4, dc1, dc2, dc3, dc4)" " = 1" |
gdb_test "p t_double_complex_many_args(dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1)" " = 0" |
@@ -242,23 +240,21 @@ proc do_function_calls {} { |
if [support_complex_tests] { |
- setup_kfail_for_target gdb/12796 "x86_64-*-*" |
gdb_test "p t_structs_fc(struct_val1)" ".*= 3 \\+ 3 \\* I" \ |
"call inferior func with struct - returns float _Complex" |
- setup_kfail_for_target gdb/12783 "i?86-*-*" |
- setup_kfail_for_target gdb/12796 "x86_64-*-*" |
gdb_test "p t_structs_dc(struct_val1)" ".*= 4 \\+ 4 \\* I" \ |
"call inferior func with struct - returns double _Complex" |
- setup_kfail_for_target gdb/12783 "i?86-*-*" |
- setup_kfail_for_target gdb/12796 "x86_64-*-*" |
gdb_test "p t_structs_ldc(struct_val1)" "= 5 \\+ 5 \\* I" \ |
"call inferior func with struct - returns long double _Complex" |
} |
gdb_test "p t_structs_a(struct_val1)" "= (.unsigned char .. )?<buf.*> \"foo\"" \ |
"call inferior func with struct - returns char *" |
+ |
+ # Restore default value. |
+ gdb_test_no_output "set unwindonsignal off" |
} |
# Procedure to get current content of all registers. |
@@ -331,7 +327,7 @@ proc rerun_and_prepare {} { |
# the language be set to the default. |
if { ![runto_main] } { |
- gdb_suppress_tests; |
+ gdb_suppress_tests |
} |
# However, turn off overload-resolution for aCC. Having it on causes |
@@ -340,7 +336,7 @@ proc rerun_and_prepare {} { |
gdb_test_no_output "set overload-resolution 0" |
} else { |
if { ![runto_main] } { |
- gdb_suppress_tests; |
+ gdb_suppress_tests |
} |
gdb_test_no_output "set language c" |
} |