summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid King <dking@redhat.com>2018-10-12 16:20:39 +0100
committerSimon McVittie <smcv@collabora.com>2019-04-17 13:38:05 +0100
commitc6c6b423cfd190f25f055ad78998b3055fff62e1 (patch)
treec950bc716a0f865b3377786954090799e548f6a5
parent2fb62561f0304a0f550d828513c09818c804023a (diff)
downloaddbus-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.c8
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
}
/**