aboutsummaryrefslogtreecommitdiff
path: root/libbb/signals.c
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2018-12-08 13:49:15 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2018-12-08 13:49:15 +0100
commit136fe9bede247d3273f5e82b5e856fa5c15a922c (patch)
tree72c105550fa30d42bfd8344a1550eacb7cc5dcb5 /libbb/signals.c
parent9f00a0fdb159432f1d7232253e2180d85e5eca32 (diff)
downloadbusybox-136fe9bede247d3273f5e82b5e856fa5c15a922c.tar.gz
suppress gcc 8 aliasing warnings
function old new delta sigprocmask_SIG_SETMASK - 16 +16 wait_for_child_or_signal 221 213 -8 dowait 432 424 -8 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'libbb/signals.c')
-rw-r--r--libbb/signals.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/libbb/signals.c b/libbb/signals.c
index 3f589321c..5a1544db7 100644
--- a/libbb/signals.c
+++ b/libbb/signals.c
@@ -31,6 +31,16 @@ int FAST_FUNC sigprocmask_allsigs(int how)
return sigprocmask(how, &set, NULL);
}
+int FAST_FUNC sigprocmask_SIG_SETMASK(sigset_t *set)
+{
+ // Grr... gcc 8.1.1:
+ // "passing argument 3 to restrict-qualified parameter aliases with argument 2"
+ // dance around that...
+ sigset_t *oset FIX_ALIASING;
+ oset = set;
+ return sigprocmask(SIG_SETMASK, set, oset);
+}
+
void FAST_FUNC bb_signals(int sigs, void (*f)(int))
{
int sig_no = 0;