2004-06-15 Andrew Cagney * gdb.base/signull.c (bowler): Replace data_pointer with data_read and data_write cases. Add code_descriptor case. (zero, desc): New array and pointer. (data, code): Change to simple pointers. * gdb.base/signull.exp: Fix probe pattern matching a function descriptor SIGSEGV. Replace data_pointer with data_read and data_write tests. Index: gdb.base/signull.c =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.base/signull.c,v retrieving revision 1.3 diff -p -u -r1.3 signull.c --- gdb.base/signull.c 22 May 2004 13:14:22 -0000 1.3 +++ gdb.base/signull.c 16 Jun 2004 01:55:19 -0000 @@ -22,7 +22,7 @@ #include enum tests { - code_entry_point, code_descriptor, data_pointer + code_entry_point, code_descriptor, data_read, data_write }; static volatile enum tests test; @@ -31,8 +31,10 @@ static volatile enum tests test; typedef long data_t; typedef long code_t (void); -static volatile data_t *data[10]; -static volatile code_t *code[10]; +volatile data_t *data; +volatile code_t *code; +volatile data_t zero[10]; +volatile code_t *desc = (void *) zero; sigjmp_buf env; @@ -47,12 +49,14 @@ bowler (void) { switch (test) { - case data_pointer: - return *data[0]; + case data_read: + return (*data); + case data_write: + return (*data) = 1; case code_entry_point: - return code[0] (); + return (*code) (); case code_descriptor: - return ((code_t *) &code) (); + return (*desc) (); } } Index: gdb.base/signull.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.base/signull.exp,v retrieving revision 1.1 diff -p -u -r1.1 signull.exp --- gdb.base/signull.exp 13 May 2004 18:12:07 -0000 1.1 +++ gdb.base/signull.exp 16 Jun 2004 01:55:19 -0000 @@ -79,7 +79,7 @@ gdb_test "set test = code_entry_point" " set test "probe function pointer" set function_pointer code_entry_point gdb_test_multiple "continue" "$test" { - -re "Program received signal SIGSEGV.* bowler .$gdb_prompt $" { + -re "Program received signal SIGSEGV.*bowler .*$gdb_prompt $" { set function_pointer code_descriptor pass "$test (function descriptor)" } @@ -109,7 +109,10 @@ proc test_segv { name tag bt_from_segv b gdb_test backtrace $bt_from_keeper "backtrace keeper for ${name}" } -test_segv data data_pointer \ +test_segv data-read data_read \ + {#0 .* bowler .*#1 .* main .*} \ + {#0 .* keeper .*#1 .* handler .*#2 .* bowler .*#3 .* main .*} +test_segv data-write data_write \ {#0 .* bowler .*#1 .* main .*} \ {#0 .* keeper .*#1 .* handler .*#2 .* bowler .*#3 .* main .*} test_segv code $function_pointer \