xref: /openbsd-src/gnu/usr.bin/binutils/gdb/testsuite/gdb.base/signals.c (revision b2ea75c1b17e1a9a339660e7ed45cd24946b230e)
1 /* Test GDB dealing with stuff like stepping into sigtramp.  */
2 
3 #include <signal.h>
4 
5 #ifdef __sh__
6 #define signal(a,b)	/* Signals not supported on this target - make them go away */
7 #define alarm(a)	/* Ditto for alarm() */
8 #endif
9 
10 static int count = 0;
11 
12 static void
13 handler (sig)
14      int sig;
15 {
16   signal (sig, handler);
17   ++count;
18 }
19 
20 static void
21 func1 ()
22 {
23   ++count;
24 }
25 
26 static void
27 func2 ()
28 {
29   ++count;
30 }
31 
32 int
33 main ()
34 {
35 #ifdef usestubs
36   set_debug_traps();
37   breakpoint();
38 #endif
39 #ifdef SIGALRM
40   signal (SIGALRM, handler);
41 #endif
42 #ifdef SIGUSR1
43   signal (SIGUSR1, handler);
44 #endif
45   alarm (1);
46   ++count; /* first */
47   alarm (1);
48   ++count; /* second */
49   func1 ();
50   alarm (1);
51   func2 ();
52   return count;
53 }
54