* gdb.base/callfuncs.exp (do_function_calls): Set unwindonsignal to on
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.base / callfuncs.exp
index 3057020b7380112742881373d1c0063fbd3acfa4..f56761eace5c631c5c1156b4360ff72a2be0da1a 100644 (file)
@@ -33,7 +33,7 @@ if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $com
 # Create and source the file that provides information about the compiler
 # used to compile the test case.
 
-if [get_compiler_info ${binfile}] {
+if [get_compiler_info] {
     return -1;
 }
 
@@ -65,6 +65,10 @@ proc do_function_calls {} {
     # We need to up this because this can be really slow on some boards.
     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"
     gdb_test "p t_char_values(char_val1,char_val2)" " = 1"
@@ -259,6 +263,9 @@ proc do_function_calls {} {
 
     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.
@@ -539,3 +546,6 @@ if {![target_info exists gdb,nosignals] && ![istarget "*-*-uclinux*"]} {
 # handling vs. local labels `.L'... as `Lcallfunc' starts with `L'.
 
 gdb_test "print callfunc (Lcallfunc, 5)" " = 12"
+
+# Regression test for function pointer cast.
+gdb_test "print *((int *(*) (void)) voidfunc)()" " = 23"
This page took 0.024797 seconds and 4 git commands to generate.