aboutsummaryrefslogtreecommitdiff
path: root/libbb/lineedit.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/lineedit.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/lineedit.c')
-rw-r--r--libbb/lineedit.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/libbb/lineedit.c b/libbb/lineedit.c
index b6fcd7af0..378f0900a 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) {