xz: signals: suppress -Wsign-conversion on macOS

On macOS, we get:
```
signals.c: In function 'signals_init':
signals.c:76:17: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion]
   76 |                 sigaddset(&hooked_signals, sigs[i]);
      |                 ^~~~~~~~~
signals.c:81:17: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion]
   81 |                 sigaddset(&hooked_signals, message_progress_sigs[i]);
      |                 ^~~~~~~~~
signals.c:86:9: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion]
   86 |         sigaddset(&hooked_signals, SIGTSTP);
      |         ^~~~~~~~~
```

We use `int` for `hooked_signals` but we can't just cast to whatever
`sigset_t` is because `sigset_t` is an opaque type. It's an unsigned int
on macOS. On macOS, `sigaddset` is implemented as a macro.

Just suppress -Wsign-conversion for `signals_init` for macOS given
there's no real nice way of fixing this.

(cherry picked from commit 863f13d282)
This commit is contained in:
Sam James 2024-04-11 19:34:04 +01:00 committed by Lasse Collin
parent 50fb269c7a
commit 2633d8df61
1 changed files with 7 additions and 0 deletions

View File

@ -49,6 +49,10 @@ signal_handler(int sig)
} }
#ifdef __APPLE__
# pragma GCC diagnostic push
# pragma GCC diagnostic ignored "-Wsign-conversion"
#endif
extern void extern void
signals_init(void) signals_init(void)
{ {
@ -127,6 +131,9 @@ signals_init(void)
return; return;
} }
#ifdef __APPLE__
# pragma GCC diagnostic pop
#endif
#ifndef __VMS #ifndef __VMS