1 //===----------------------------------------------------------------------===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is dual licensed under the MIT and the University of Illinois Open 6 // Source Licenses. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 // test <signal.h> 11 12 #include <signal.h> 13 #include <type_traits> 14 15 #ifndef SIG_DFL 16 #error SIG_DFL not defined 17 #endif 18 19 #ifndef SIG_ERR 20 #error SIG_ERR not defined 21 #endif 22 23 #ifndef SIG_IGN 24 #error SIG_IGN not defined 25 #endif 26 27 #ifndef SIGABRT 28 #error SIGABRT not defined 29 #endif 30 31 #ifndef SIGFPE 32 #error SIGFPE not defined 33 #endif 34 35 #ifndef SIGILL 36 #error SIGILL not defined 37 #endif 38 39 #ifndef SIGINT 40 #error SIGINT not defined 41 #endif 42 43 #ifndef SIGSEGV 44 #error SIGSEGV not defined 45 #endif 46 47 #ifndef SIGTERM 48 #error SIGTERM not defined 49 #endif 50 51 int main() 52 { 53 sig_atomic_t sig; ((void)sig); 54 typedef void (*func)(int); 55 static_assert((std::is_same<decltype(signal(0, (func)0)), func>::value), ""); 56 static_assert((std::is_same<decltype(raise(0)), int>::value), ""); 57 } 58