From 0cc80b3913489e74f6d5a0ac9b8a4c5523d9cecd Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Thu, 2 Feb 2023 00:37:00 +0100 Subject: Avoid undefined-behavior 1 << 31 is undefined behavior, 1 needs to be made unsigned for << 31 to be defined behavior. --- ext2fs/ext2fs.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'ext2fs') diff --git a/ext2fs/ext2fs.h b/ext2fs/ext2fs.h index 88c9fe81..c17cf37c 100644 --- a/ext2fs/ext2fs.h +++ b/ext2fs/ext2fs.h @@ -127,7 +127,7 @@ EXT2FS_EI int test_bit (unsigned num, unsigned char *bitmap) { const uint32_t *const bw = (uint32_t *) bitmap + (num >> 5); - const uint_fast32_t mask = 1 << (num & 31); + const uint_fast32_t mask = 1U << (num & 31); return *bw & mask; } @@ -137,7 +137,7 @@ EXT2FS_EI int set_bit (unsigned num, unsigned char *bitmap) { uint32_t *const bw = (uint32_t *) bitmap + (num >> 5); - const uint_fast32_t mask = 1 << (num & 31); + const uint_fast32_t mask = 1U << (num & 31); return (*bw & mask) ?: (*bw |= mask, 0); } @@ -147,7 +147,7 @@ EXT2FS_EI int clear_bit (unsigned num, unsigned char *bitmap) { uint32_t *const bw = (uint32_t *) bitmap + (num >> 5); - const uint_fast32_t mask = 1 << (num & 31); + const uint_fast32_t mask = 1U << (num & 31); return (*bw & mask) ? (*bw &= ~mask, mask) : 0; } #endif /* Use extern inlines. */ -- cgit v1.2.3