Immediately executed lambda.

This commit is contained in:
Olli Lupton 2021-11-05 15:37:34 +01:00
parent eafdd3eb81
commit 0230d69084
No known key found for this signature in database
GPG Key ID: 2886C101B2C08D0E
2 changed files with 8 additions and 21 deletions

View File

@ -18,14 +18,6 @@
// The fmt library version in the form major * 10000 + minor * 100 + patch.
#define FMT_VERSION 80001
#if defined(__NVCOMPILER)
# define FMT_NVHPC_VERSION \
(__NVCOMPILER_MAJOR__ * 10000 + __NVCOMPILER_MINOR__ * 100 + \
__NVCOMPILER_PATCHLEVEL__)
#else
# define FMT_NVHPC_VERSION 0
#endif
#if defined (__clang__ ) && !defined(__ibmxl__)
# define FMT_CLANG_VERSION (__clang_major__ * 100 + __clang_minor__)
#else
@ -39,12 +31,6 @@
# define FMT_GCC_VERSION 0
#endif
#if FMT_NVHPC_VERSION > 0
# define FMT_NVHPC_PRAGMA(arg) _Pragma(arg)
#else
# define FMT_NVHPC_PRAGMA(arg)
#endif
#ifndef FMT_GCC_PRAGMA
// Workaround _Pragma bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59884.
# if FMT_GCC_VERSION >= 504

View File

@ -970,13 +970,14 @@ FMT_CONSTEXPR auto count_digits(UInt n) -> int {
if (num_bits<UInt>() == 32)
return (FMT_BUILTIN_CLZ(static_cast<uint32_t>(n) | 1) ^ 31) / BITS + 1;
#endif
FMT_NVHPC_PRAGMA("diag_suppress initialization_not_reachable")
int num_digits = 0;
FMT_NVHPC_PRAGMA("diag_default initialization_not_reachable")
do {
++num_digits;
} while ((n >>= BITS) != 0);
return num_digits;
// Lambda avoids unreachable code warnings from NVHPC.
return [](UInt n) {
int num_digits = 0;
do {
++num_digits;
} while ((n >>= BITS) != 0);
return num_digits;
}(n);
}
template <> auto count_digits<4>(detail::fallback_uintptr n) -> int;