Blame gnulib-tests/test-signal-h.c

Packit 33f14e
/* Test of <signal.h> substitute.
Packit 33f14e
   Copyright (C) 2009-2017 Free Software Foundation, Inc.
Packit 33f14e
Packit 33f14e
   This program is free software: you can redistribute it and/or modify
Packit 33f14e
   it under the terms of the GNU General Public License as published by
Packit 33f14e
   the Free Software Foundation; either version 3 of the License, or
Packit 33f14e
   (at your option) any later version.
Packit 33f14e
Packit 33f14e
   This program is distributed in the hope that it will be useful,
Packit 33f14e
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 33f14e
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 33f14e
   GNU General Public License for more details.
Packit 33f14e
Packit 33f14e
   You should have received a copy of the GNU General Public License
Packit 33f14e
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
Packit 33f14e
Packit 33f14e
/* Written by Eric Blake <ebb9@byu.net>, 2009.  */
Packit 33f14e
Packit 33f14e
#include <config.h>
Packit 33f14e
Packit 33f14e
#include <signal.h>
Packit 33f14e
Packit 33f14e
/* Check for required types.  */
Packit 33f14e
struct
Packit 33f14e
{
Packit 33f14e
  size_t a;
Packit 33f14e
  uid_t b;
Packit 33f14e
  volatile sig_atomic_t c;
Packit 33f14e
  sigset_t d;
Packit 33f14e
  pid_t e;
Packit 33f14e
#if 0
Packit 33f14e
  /* Not guaranteed by gnulib.  */
Packit 33f14e
  pthread_t f;
Packit 33f14e
  struct timespec g;
Packit 33f14e
#endif
Packit 33f14e
} s;
Packit 33f14e
Packit 33f14e
/* Check that NSIG is defined.  */
Packit 33f14e
int nsig = NSIG;
Packit 33f14e
Packit 33f14e
int
Packit 33f14e
main (void)
Packit 33f14e
{
Packit 33f14e
  switch (0)
Packit 33f14e
    {
Packit 33f14e
      /* The following are guaranteed by C.  */
Packit 33f14e
    case 0:
Packit 33f14e
    case SIGABRT:
Packit 33f14e
    case SIGFPE:
Packit 33f14e
    case SIGILL:
Packit 33f14e
    case SIGINT:
Packit 33f14e
    case SIGSEGV:
Packit 33f14e
    case SIGTERM:
Packit 33f14e
      /* The following is guaranteed by gnulib.  */
Packit 33f14e
#if GNULIB_SIGPIPE || defined SIGPIPE
Packit 33f14e
    case SIGPIPE:
Packit 33f14e
#endif
Packit 33f14e
      /* Ensure no conflict with other standardized names.  */
Packit 33f14e
#ifdef SIGALRM
Packit 33f14e
    case SIGALRM:
Packit 33f14e
#endif
Packit 33f14e
      /* On Haiku, SIGBUS is mistakenly equal to SIGSEGV.  */
Packit 33f14e
#if defined SIGBUS && SIGBUS != SIGSEGV
Packit 33f14e
    case SIGBUS:
Packit 33f14e
#endif
Packit 33f14e
#ifdef SIGCHLD
Packit 33f14e
    case SIGCHLD:
Packit 33f14e
#endif
Packit 33f14e
#ifdef SIGCONT
Packit 33f14e
    case SIGCONT:
Packit 33f14e
#endif
Packit 33f14e
#ifdef SIGHUP
Packit 33f14e
    case SIGHUP:
Packit 33f14e
#endif
Packit 33f14e
#ifdef SIGKILL
Packit 33f14e
    case SIGKILL:
Packit 33f14e
#endif
Packit 33f14e
#ifdef SIGQUIT
Packit 33f14e
    case SIGQUIT:
Packit 33f14e
#endif
Packit 33f14e
#ifdef SIGSTOP
Packit 33f14e
    case SIGSTOP:
Packit 33f14e
#endif
Packit 33f14e
#ifdef SIGTSTP
Packit 33f14e
    case SIGTSTP:
Packit 33f14e
#endif
Packit 33f14e
#ifdef SIGTTIN
Packit 33f14e
    case SIGTTIN:
Packit 33f14e
#endif
Packit 33f14e
#ifdef SIGTTOU
Packit 33f14e
    case SIGTTOU:
Packit 33f14e
#endif
Packit 33f14e
#ifdef SIGUSR1
Packit 33f14e
    case SIGUSR1:
Packit 33f14e
#endif
Packit 33f14e
#ifdef SIGUSR2
Packit 33f14e
    case SIGUSR2:
Packit 33f14e
#endif
Packit 33f14e
#ifdef SIGSYS
Packit 33f14e
    case SIGSYS:
Packit 33f14e
#endif
Packit 33f14e
#ifdef SIGTRAP
Packit 33f14e
    case SIGTRAP:
Packit 33f14e
#endif
Packit 33f14e
#ifdef SIGURG
Packit 33f14e
    case SIGURG:
Packit 33f14e
#endif
Packit 33f14e
#ifdef SIGVTALRM
Packit 33f14e
    case SIGVTALRM:
Packit 33f14e
#endif
Packit 33f14e
#ifdef SIGXCPU
Packit 33f14e
    case SIGXCPU:
Packit 33f14e
#endif
Packit 33f14e
#ifdef SIGXFSZ
Packit 33f14e
    case SIGXFSZ:
Packit 33f14e
#endif
Packit 33f14e
      /* SIGRTMIN and SIGRTMAX need not be compile-time constants.  */
Packit 33f14e
#if 0
Packit 33f14e
# ifdef SIGRTMIN
Packit 33f14e
    case SIGRTMIN:
Packit 33f14e
# endif
Packit 33f14e
# ifdef SIGRTMAX
Packit 33f14e
    case SIGRTMAX:
Packit 33f14e
# endif
Packit 33f14e
#endif
Packit 33f14e
      ;
Packit 33f14e
    }
Packit 33f14e
  return s.a + s.b + s.c + s.e;
Packit 33f14e
}