diff options
author | Denys Vlasenko | 2018-12-08 13:49:15 +0100 |
---|---|---|
committer | Denys Vlasenko | 2018-12-08 13:49:15 +0100 |
commit | 136fe9bede247d3273f5e82b5e856fa5c15a922c (patch) | |
tree | 72c105550fa30d42bfd8344a1550eacb7cc5dcb5 /libbb | |
parent | 9f00a0fdb159432f1d7232253e2180d85e5eca32 (diff) | |
download | busybox-136fe9bede247d3273f5e82b5e856fa5c15a922c.zip busybox-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')
-rw-r--r-- | libbb/lineedit.c | 12 | ||||
-rw-r--r-- | libbb/signals.c | 10 |
2 files changed, 21 insertions, 1 deletions
diff --git a/libbb/lineedit.c b/libbb/lineedit.c index b6fcd7a..378f090 100644 --- a/libbb/lineedit.c +++ b/libbb/lineedit.c @@ -2309,6 +2309,16 @@ static int32_t reverse_i_search(int timeout) } #endif +static void sigaction2(int sig, struct sigaction *act) +{ + // Grr... gcc 8.1.1: + // "passing argument 3 to restrict-qualified parameter aliases with argument 2" + // dance around that... + struct sigaction *oact FIX_ALIASING; + oact = act; + sigaction(sig, act, oact); +} + /* maxsize must be >= 2. * Returns: * -1 on read errors or EOF, or on bare Ctrl-D, @@ -2419,7 +2429,7 @@ int FAST_FUNC read_line_input(line_input_t *st, const char *prompt, char *comman /* Install window resize handler (NB: after *all* init is complete) */ S.SIGWINCH_handler.sa_handler = win_changed; S.SIGWINCH_handler.sa_flags = SA_RESTART; - sigaction(SIGWINCH, &S.SIGWINCH_handler, &S.SIGWINCH_handler); + sigaction2(SIGWINCH, &S.SIGWINCH_handler); #endif read_key_buffer[0] = 0; while (1) { diff --git a/libbb/signals.c b/libbb/signals.c index 3f58932..5a1544d 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; |