From b004e1a808c64eed2e91e2b6e5c1d93cfc61a1bb Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Mon, 28 Aug 2023 10:33:11 +0100 Subject: [PATCH] util: fix `-Wsign-conversion` in ip_addr() (#298) --- src/uvw/util.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/uvw/util.cpp b/src/uvw/util.cpp index 1e5a6969..4e2fff35 100644 --- a/src/uvw/util.cpp +++ b/src/uvw/util.cpp @@ -60,9 +60,12 @@ UVW_INLINE void common_alloc_callback(uv_handle_t *, std::size_t suggested, uv_b } UVW_INLINE sockaddr ip_addr(const char *addr, unsigned int port) { - if(sockaddr_in addr_in; uv_ip4_addr(addr, port, &addr_in) == 0) { + // explicitly cast to avoid `-Wsign-conversion` warnings + // libuv internally just casts to an `unsigned short` anyway + auto signed_port = static_cast(port); + if(sockaddr_in addr_in; uv_ip4_addr(addr, signed_port, &addr_in) == 0) { return reinterpret_cast(addr_in); - } else if(sockaddr_in6 addr_in6; uv_ip6_addr(addr, port, &addr_in6) == 0) { + } else if(sockaddr_in6 addr_in6; uv_ip6_addr(addr, signed_port, &addr_in6) == 0) { return reinterpret_cast(addr_in6); }