Mercurial > gnulib
annotate tests/test-signal-h.c @ 40246:c34f677e6117 default tip master
_Noreturn: GCC 4.7 does not support [[noreturn]] in C++11 mode
* lib/_Noreturn.h, m4/gnulib-common.m4: Don't use [[noreturn]] before
GCC 4.8.
author | Akim Demaille <akim.demaille@gmail.com> |
---|---|
date | Sun, 17 Mar 2019 19:27:20 +0100 |
parents | b06060465f09 |
children |
rev | line source |
---|---|
15758 | 1 /* Test of <signal.h> substitute. |
40057
b06060465f09
maint: Run 'make update-copyright'
Paul Eggert <eggert@cs.ucla.edu>
parents:
19484
diff
changeset
|
2 Copyright (C) 2009-2019 Free Software Foundation, Inc. |
15758 | 3 |
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. | |
8 | |
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. | |
13 | |
14 You should have received a copy of the GNU General Public License | |
19190 | 15 along with this program. If not, see <https://www.gnu.org/licenses/>. */ |
15758 | 16 |
17 /* Written by Eric Blake <ebb9@byu.net>, 2009. */ | |
18 | |
19 #include <config.h> | |
20 | |
21 #include <signal.h> | |
22 | |
23 /* Check for required types. */ | |
24 struct | |
25 { | |
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; | |
37 | |
38 /* Check that NSIG is defined. */ | |
39 int nsig = NSIG; | |
40 | |
41 int | |
42 main (void) | |
43 { | |
44 switch (0) | |
45 { | |
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 | |
126 ; | |
127 } | |
128 return s.a + s.b + s.c + s.e; | |
129 } |