From d393e000378713bd0bfe07375adfa9d026e8645f Mon Sep 17 00:00:00 2001 From: Jason Date: Thu, 23 Dec 2021 08:44:37 -0800 Subject: [PATCH] Fix compiler warnings for gcc & clang When compiling with -Wimplicit-int-conversion and -Wsign-conversion gcc/clang give warnings for a handful of lines. Silence the warnings by adding explicit casts. --- include/uuid.h | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/include/uuid.h b/include/uuid.h index 723b5cf..da927b9 100644 --- a/include/uuid.h +++ b/include/uuid.h @@ -58,11 +58,11 @@ namespace uuids constexpr inline unsigned char hex2char(TChar const ch) { if (ch >= static_cast('0') && ch <= static_cast('9')) - return ch - static_cast('0'); + return static_cast(ch - static_cast('0')); if (ch >= static_cast('a') && ch <= static_cast('f')) - return 10 + ch - static_cast('a'); + return static_cast(10 + ch - static_cast('a')); if (ch >= static_cast('A') && ch <= static_cast('F')) - return 10 + ch - static_cast('A'); + return static_cast(10 + ch - static_cast('A')); return 0; } @@ -418,7 +418,7 @@ namespace uuids { auto str = detail::to_string_view(in_str); bool firstDigit = true; - int hasBraces = 0; + size_t hasBraces = 0; size_t index = 0; if (str.empty()) @@ -462,7 +462,7 @@ namespace uuids { auto str = detail::to_string_view(in_str); bool firstDigit = true; - int hasBraces = 0; + size_t hasBraces = 0; size_t index = 0; std::array data{ { 0 } }; @@ -485,12 +485,13 @@ namespace uuids if (firstDigit) { - data[index] = detail::hex2char(str[i]) << 4; + data[index] = static_cast(detail::hex2char(str[i]) << 4); firstDigit = false; } else { - data[index++] |= detail::hex2char(str[i]); + data[index] = static_cast(data[index] | detail::hex2char(str[i])); + index++; firstDigit = true; } }