argp: Emit a warning also with clang.
[gnulib.git] / tests / test-signal-h.c
bloba504f567b5ad757dd4cd57ae9e2c92a7fab735cc
1 /* Test of <signal.h> substitute.
2 Copyright (C) 2009-2020 Free Software Foundation, Inc.
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 3 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see <https://www.gnu.org/licenses/>. */
17 /* Written by Eric Blake <ebb9@byu.net>, 2009. */
19 #include <config.h>
21 #include <signal.h>
23 /* Check for required types. */
24 struct
26 size_t a;
27 uid_t b;
28 volatile sig_atomic_t c;
29 sigset_t d;
30 pid_t e;
31 #if 0
32 /* Not guaranteed by gnulib. */
33 pthread_t f;
34 struct timespec g;
35 #endif
36 } s;
38 /* Check that NSIG is defined. */
39 int nsig = NSIG;
41 int
42 main (void)
44 switch (0)
46 /* The following are guaranteed by C. */
47 case 0:
48 case SIGABRT:
49 case SIGFPE:
50 case SIGILL:
51 case SIGINT:
52 case SIGSEGV:
53 case SIGTERM:
54 /* The following is guaranteed by gnulib. */
55 #if GNULIB_SIGPIPE || defined SIGPIPE
56 case SIGPIPE:
57 #endif
58 /* Ensure no conflict with other standardized names. */
59 #ifdef SIGALRM
60 case SIGALRM:
61 #endif
62 /* On Haiku, SIGBUS is mistakenly equal to SIGSEGV. */
63 #if defined SIGBUS && SIGBUS != SIGSEGV
64 case SIGBUS:
65 #endif
66 #ifdef SIGCHLD
67 case SIGCHLD:
68 #endif
69 #ifdef SIGCONT
70 case SIGCONT:
71 #endif
72 #ifdef SIGHUP
73 case SIGHUP:
74 #endif
75 #ifdef SIGKILL
76 case SIGKILL:
77 #endif
78 #ifdef SIGQUIT
79 case SIGQUIT:
80 #endif
81 #ifdef SIGSTOP
82 case SIGSTOP:
83 #endif
84 #ifdef SIGTSTP
85 case SIGTSTP:
86 #endif
87 #ifdef SIGTTIN
88 case SIGTTIN:
89 #endif
90 #ifdef SIGTTOU
91 case SIGTTOU:
92 #endif
93 #ifdef SIGUSR1
94 case SIGUSR1:
95 #endif
96 #ifdef SIGUSR2
97 case SIGUSR2:
98 #endif
99 #ifdef SIGSYS
100 case SIGSYS:
101 #endif
102 #ifdef SIGTRAP
103 case SIGTRAP:
104 #endif
105 #ifdef SIGURG
106 case SIGURG:
107 #endif
108 #ifdef SIGVTALRM
109 case SIGVTALRM:
110 #endif
111 #ifdef SIGXCPU
112 case SIGXCPU:
113 #endif
114 #ifdef SIGXFSZ
115 case SIGXFSZ:
116 #endif
117 /* SIGRTMIN and SIGRTMAX need not be compile-time constants. */
118 #if 0
119 # ifdef SIGRTMIN
120 case SIGRTMIN:
121 # endif
122 # ifdef SIGRTMAX
123 case SIGRTMAX:
124 # endif
125 #endif
128 return s.a + s.b + s.c + s.e;