Replace #if with if constexpr()

This allows to test the actual type, not something unrelated

Change-Id: I82d0714f6355fc5ae7bd3205af3472a43f1f1051
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105998
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
This commit is contained in:
Mike Kaganski 2020-11-18 10:24:08 +01:00
parent 20bc83ee9e
commit d9af7ac4d6
2 changed files with 18 additions and 15 deletions

View File

@ -60,13 +60,14 @@ static inline unsigned int highbit(sal_Size n)
if (n == 0)
return 0;
#if SAL_TYPES_SIZEOFLONG == 8
if (n & 0xffffffff00000000ul)
if constexpr (sizeof(n) >= 8)
{
k |= 32;
n >>= 32;
if (n & 0xffffffff00000000)
{
k |= 32;
n >>= 32;
}
}
#endif
if (n & 0xffff0000)
{
k |= 16;
@ -103,13 +104,14 @@ static inline unsigned int lowbit(sal_Size n)
if (n == 0)
return 0;
#if SAL_TYPES_SIZEOFLONG == 8
if (!(n & 0xffffffff))
if constexpr (sizeof(n) >= 8)
{
k |= 32;
n >>= 32;
if (!(n & 0xffffffff))
{
k |= 32;
n >>= 32;
}
}
#endif
if (!(n & 0xffff))
{

View File

@ -136,13 +136,14 @@ static int highbit(std::size_t n)
if (n == 0)
return 0;
#if SAL_TYPES_SIZEOFLONG == 8
if (n & 0xffffffff00000000ul)
if constexpr (sizeof(n) == 8)
{
k |= 32;
n >>= 32;
if (n & 0xffffffff00000000)
{
k |= 32;
n >>= 32;
}
}
#endif
if (n & 0xffff0000)
{
k |= 16;