-// RUN: %clangxx -O0 -g %s -o %t && %run %t 2>&1 | FileCheck %s
+// RUN: %clangxx -std=c++11 -O0 -g %s -o %t && %run %t 2>&1 | FileCheck %s
#include <assert.h>
#include <climits>
void test_signal_custom() {
for (int signum : std_signals) {
- sighandler_t ret = signal(signum, &signal_handler);
+ auto* ret = signal(signum, &signal_handler);
assert(ret != SIG_ERR);
}
+#ifdef SIGRTMIN
for (int signum = SIGRTMIN; signum <= SIGRTMAX; ++signum) {
- sighandler_t ret = signal(signum, &signal_handler);
+ auto* ret = signal(signum, &signal_handler);
assert(ret != SIG_ERR);
}
+#endif
for (int signum : no_change_act_signals) {
- sighandler_t ret = signal(signum, &signal_handler);
+ auto* ret = signal(signum, &signal_handler);
int err = errno;
assert(ret == SIG_ERR);
assert(err == EINVAL);
}
- for (int signum : { 0, SIGRTMAX + 1, INT_MAX}) {
- sighandler_t ret = signal(signum, &signal_handler);
+ for (int signum : {
+ 0,
+#ifdef SIGRTMAX
+ SIGRTMAX + 1,
+#endif
+ INT_MAX}) {
+ auto* ret = signal(signum, &signal_handler);
int err = errno;
assert(ret == SIG_ERR);
assert(err == EINVAL);
void test_signal_ignore() {
for (int signum : std_signals) {
- sighandler_t ret = signal(signum, SIG_IGN);
+ auto* ret = signal(signum, SIG_IGN);
if (signum != SIGCHLD) {
// POSIX.1-1990 disallowed setting the action for SIGCHLD to SIG_IGN
// though POSIX.1-2001 and later allow this possibility.
assert(ret != SIG_ERR);
}
}
+#ifdef SIGRTMIN
for (int signum = SIGRTMIN; signum <= SIGRTMAX; ++signum) {
- sighandler_t ret = signal(signum, SIG_IGN);
+ auto* ret = signal(signum, SIG_IGN);
assert(ret != SIG_ERR);
}
+#endif
for (int signum : no_change_act_signals) {
- sighandler_t ret = signal(signum, SIG_IGN);
+ auto* ret = signal(signum, SIG_IGN);
int err = errno;
assert(ret == SIG_ERR);
assert(err == EINVAL);
}
- for (int signum : { 0, SIGRTMAX + 1, INT_MAX}) {
- sighandler_t ret = signal(signum, SIG_IGN);
+ for (int signum : {
+ 0,
+#ifdef SIGRTMAX
+ SIGRTMAX + 1,
+#endif
+ INT_MAX}) {
+ auto* ret = signal(signum, SIG_IGN);
int err = errno;
assert(ret == SIG_ERR);
assert(err == EINVAL);
void test_signal_default() {
for (int signum : std_signals) {
- sighandler_t ret = signal(signum, SIG_DFL);
+ auto* ret = signal(signum, SIG_DFL);
assert(ret != SIG_ERR);
}
+#ifdef SIGRTMIN
for (int signum = SIGRTMIN; signum <= SIGRTMAX; ++signum) {
- sighandler_t ret = signal(signum, SIG_DFL);
+ auto* ret = signal(signum, SIG_DFL);
assert(ret != SIG_ERR);
}
- for (int signum : { 0, SIGRTMAX + 1, INT_MAX}) {
- sighandler_t ret = signal(signum, SIG_DFL);
+#endif
+ for (int signum : {
+ 0,
+#ifdef SIGRTMAX
+ SIGRTMAX + 1,
+#endif
+ INT_MAX}) {
+ auto* ret = signal(signum, SIG_DFL);
int err = errno;
assert(ret == SIG_ERR);
assert(err == EINVAL);
int ret = sigaction(signum, &act, &oldact);
assert(ret == 0);
}
+#ifdef SIGRTMIN
for (int signum = SIGRTMIN; signum <= SIGRTMAX; ++signum) {
int ret = sigaction(signum, &act, &oldact);
assert(ret == 0);
}
+#endif
for (int signum : no_change_act_signals) {
int ret = sigaction(signum, &act, &oldact);
int err = errno;
assert(ret == -1);
assert(err == EINVAL);
}
- for (int signum : { 0, SIGRTMAX + 1, INT_MAX}) {
+ for (int signum : {
+ 0,
+#ifdef SIGRTMAX
+ SIGRTMAX + 1,
+#endif
+ INT_MAX}) {
int ret = sigaction(signum, &act, &oldact);
int err = errno;
assert(ret == -1);
int ret = sigaction(signum, &act, &oldact);
assert(ret == 0);
}
+#ifdef SIGRTMIN
for (int signum = SIGRTMIN; signum <= SIGRTMAX; ++signum) {
int ret = sigaction(signum, &act, &oldact);
assert(ret == 0);
}
+#endif
for (int signum : no_change_act_signals) {
int ret = sigaction(signum, &act, &oldact);
int err = errno;
assert(ret == -1);
assert(err == EINVAL);
}
- for (int signum : { 0, SIGRTMAX + 1, INT_MAX}) {
+ for (int signum : {
+ 0,
+#ifdef SIGRTMAX
+ SIGRTMAX + 1,
+#endif
+ INT_MAX}) {
int ret = sigaction(signum, &act, &oldact);
int err = errno;
assert(ret == -1);
assert(ret == 0);
}
}
+#ifdef SIGRTMIN
for (int signum = SIGRTMIN; signum <= SIGRTMAX; ++signum) {
int ret = sigaction(signum, &act, &oldact);
assert(ret == 0);
}
+#endif
for (int signum : no_change_act_signals) {
int ret = sigaction(signum, &act, &oldact);
int err = errno;
assert(ret == -1);
assert(err == EINVAL);
}
- for (int signum : { 0, SIGRTMAX + 1, INT_MAX}) {
+ for (int signum : {
+ 0,
+#ifdef SIGRTMAX
+ SIGRTMAX + 1,
+#endif
+ INT_MAX}) {
int ret = sigaction(signum, &act, &oldact);
int err = errno;
assert(ret == -1);
int ret = sigaction(signum, &act, &oldact);
assert(ret == 0);
}
+#ifdef SIGRTMIN
for (int signum = SIGRTMIN; signum <= SIGRTMAX; ++signum) {
int ret = sigaction(signum, &act, &oldact);
assert(ret == 0);
}
- for (int signum : { 0, SIGRTMAX + 1, INT_MAX}) {
+#endif
+ for (int signum : {
+ 0,
+#ifdef SIGRTMAX
+ SIGRTMAX + 1,
+#endif
+ INT_MAX}) {
int ret = sigaction(signum, &act, &oldact);
int err = errno;
assert(ret == -1);