Fix constant flow mask maths
Signed-off-by: Paul Elliott <paul.elliott@arm.com>
diff --git a/library/base64.c b/library/base64.c
index 6b0cb71..9bc6a52 100644
--- a/library/base64.c
+++ b/library/base64.c
@@ -110,7 +110,9 @@
#endif
/* Generate bitmask from condition, mask will either be 0xFFFFFFFF or 0 */
- unsigned char mask = -( unsigned char )( ( condition | -condition ) >> 7 );
+ unsigned char mask = ( condition | -condition );
+ mask >>= 7;
+ mask = -mask;
#if defined(_MSC_VER)
#pragma warning( pop )
@@ -133,7 +135,9 @@
#endif
/* Generate bitmask from condition, mask will either be 0xFFFFFFFF or 0 */
- uint32_t mask = -( uint32_t )( ( condition | -condition ) >> 31 );
+ uint32_t mask = ( condition | -condition );
+ mask >>= 31;
+ mask = -mask;
#if defined(_MSC_VER)
#pragma warning( pop )
@@ -142,7 +146,6 @@
*dest = ( src & mask ) | ( ( *dest ) & ~mask );
}
-
/*
* Constant flow check for equality
*/