This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Use UINTMAX_C() in nBIT_MASK() definition
authorDagfinn Ilmari Mannsåker <ilmari@ilmari.org>
Mon, 20 Jul 2020 10:36:51 +0000 (11:36 +0100)
committerDagfinn Ilmari Mannsåker <ilmari@ilmari.org>
Mon, 20 Jul 2020 12:25:46 +0000 (13:25 +0100)
We already have a macro for constants of the largest available type,
use that instead of HAS_LONG_LONG, which is (erroneously?) not defined
under MSVC.

handy.h

diff --git a/handy.h b/handy.h
index a2da312..7527461 100644 (file)
--- a/handy.h
+++ b/handy.h
@@ -273,11 +273,7 @@ typedef U64TYPE U64;
 #endif
 
 /* Returns a mask with the lowest n bits set */
 #endif
 
 /* Returns a mask with the lowest n bits set */
-#ifdef HAS_LONG_LONG
-#  define nBIT_MASK(n) ((1ULL << (n)) - 1)
-#else
-#  define nBIT_MASK(n) ((1UL << (n)) - 1)
-#endif
+#define nBIT_MASK(n) ((UINTMAX_C(1) << (n)) - 1)
 
 /* The largest unsigned number that will fit into n bits */
 #define nBIT_UMAX(n)  nBIT_MASK(n)
 
 /* The largest unsigned number that will fit into n bits */
 #define nBIT_UMAX(n)  nBIT_MASK(n)