diff options
author | David King <dking@redhat.com> | 2018-10-12 16:20:39 +0100 |
---|---|---|
committer | Simon McVittie <smcv@collabora.com> | 2019-04-17 13:38:05 +0100 |
commit | c6c6b423cfd190f25f055ad78998b3055fff62e1 (patch) | |
tree | c950bc716a0f865b3377786954090799e548f6a5 | |
parent | 2fb62561f0304a0f550d828513c09818c804023a (diff) | |
download | dbus-c6c6b423cfd190f25f055ad78998b3055fff62e1.tar.gz |
_dbus_get_is_errno_eagain_or_ewouldblock: Avoid warning
EAGAIN and EWOULDBLOCK are documented to possibly be numerically equal,
for instance in errno(3), and a simple logical OR check will trigger the
-Wlogical-op warning of GCC. The GCC developers consider the warning to
work as-designed in this case:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69602
Avoid such a warning by explicitly checking if the values are identical.
Fixes: https://gitlab.freedesktop.org/dbus/dbus/issues/225
Signed-off-by: David King <dking@redhat.com>
Reviewed-by: Simon McVittie <smcv@collabora.com>
(cherry picked from commit a65319134209d39f5eb6e5425ec6a35fad05bcd7)
-rw-r--r-- | dbus/dbus-sysdeps-unix.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c index 565e089c..e8cd5b33 100644 --- a/dbus/dbus-sysdeps-unix.c +++ b/dbus/dbus-sysdeps-unix.c @@ -4364,7 +4364,15 @@ _dbus_daemon_unpublish_session_bus_address (void) dbus_bool_t _dbus_get_is_errno_eagain_or_ewouldblock (int e) { + /* Avoid the -Wlogical-op GCC warning, which can be triggered when EAGAIN and + * EWOULDBLOCK are numerically equal, which is permitted as described by + * errno(3). + */ +#if EAGAIN == EWOULDBLOCK + return e == EAGAIN; +#else return e == EAGAIN || e == EWOULDBLOCK; +#endif } /** |