Skip to content

Commit a7747f5

Browse files
author
git apple-llvm automerger
committed
Merge commit 'e68a0320a159' from llvm.org/main into next
2 parents 53aa423 + e68a032 commit a7747f5

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

libc/src/signal/linux/signal_utils.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,12 @@ namespace LIBC_NAMESPACE {
2727
// handler taking siginfo_t * argument, one can set sa_handler to sa_sigaction
2828
// if SA_SIGINFO is set in sa_flags.
2929
struct KernelSigaction {
30-
using HandlerType = void(int);
31-
using SiginfoHandlerType = void(int, siginfo_t *, void *);
32-
3330
LIBC_INLINE KernelSigaction &operator=(const struct sigaction &sa) {
3431
sa_flags = sa.sa_flags;
3532
sa_restorer = sa.sa_restorer;
3633
sa_mask = sa.sa_mask;
3734
if (sa_flags & SA_SIGINFO) {
38-
sa_handler = reinterpret_cast<HandlerType *>(sa.sa_sigaction);
35+
sa_sigaction = sa.sa_sigaction;
3936
} else {
4037
sa_handler = sa.sa_handler;
4138
}
@@ -48,13 +45,16 @@ struct KernelSigaction {
4845
sa.sa_mask = sa_mask;
4946
sa.sa_restorer = sa_restorer;
5047
if (sa_flags & SA_SIGINFO)
51-
sa.sa_sigaction = reinterpret_cast<SiginfoHandlerType *>(sa_handler);
48+
sa.sa_sigaction = sa_sigaction;
5249
else
5350
sa.sa_handler = sa_handler;
5451
return sa;
5552
}
5653

57-
HandlerType *sa_handler;
54+
union {
55+
void (*sa_handler)(int);
56+
void (*sa_sigaction)(int, siginfo_t *, void *);
57+
};
5858
unsigned long sa_flags;
5959
void (*sa_restorer)(void);
6060
// Our public definition of sigset_t matches that of the kernel's definition.

0 commit comments

Comments
 (0)