mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-25 00:52:02 +00:00
Merge pull request #23776 from ClickHouse/pvs-workaround
Workaround for PVS-Studio
This commit is contained in:
commit
37f44ca7e8
@ -13,7 +13,12 @@ using char8_t = unsigned char;
|
||||
#endif
|
||||
|
||||
/// This is needed for more strict aliasing. https://godbolt.org/z/xpJBSb https://stackoverflow.com/a/57453713
|
||||
#if !defined(PVS_STUDIO) /// But PVS-Studio does not treat it correctly.
|
||||
using UInt8 = char8_t;
|
||||
#else
|
||||
using UInt8 = uint8_t;
|
||||
#endif
|
||||
|
||||
using UInt16 = uint16_t;
|
||||
using UInt32 = uint32_t;
|
||||
using UInt64 = uint64_t;
|
||||
|
@ -85,19 +85,19 @@ inline bool parseIPv6(const char * src, unsigned char * dst)
|
||||
return clear_dst();
|
||||
|
||||
unsigned char tmp[IPV6_BINARY_LENGTH]{};
|
||||
auto * tp = tmp;
|
||||
auto * endp = tp + IPV6_BINARY_LENGTH;
|
||||
const auto * curtok = src;
|
||||
auto saw_xdigit = false;
|
||||
unsigned char * tp = tmp;
|
||||
unsigned char * endp = tp + IPV6_BINARY_LENGTH;
|
||||
const char * curtok = src;
|
||||
bool saw_xdigit = false;
|
||||
UInt32 val{};
|
||||
unsigned char * colonp = nullptr;
|
||||
|
||||
/// Assuming zero-terminated string.
|
||||
while (const auto ch = *src++)
|
||||
while (char ch = *src++)
|
||||
{
|
||||
const auto num = unhex(ch);
|
||||
UInt8 num = unhex(ch);
|
||||
|
||||
if (num != u8'\xff')
|
||||
if (num != 0xFF)
|
||||
{
|
||||
val <<= 4;
|
||||
val |= num;
|
||||
|
Loading…
Reference in New Issue
Block a user