]> www.ginac.de Git - cln.git/commitdiff
Fix warnings from gcc's -Wshift-overflow.
authorBruno Haible <bruno@clisp.org>
Mon, 7 Jan 2019 06:52:12 +0000 (07:52 +0100)
committerBruno Haible <bruno@clisp.org>
Mon, 7 Jan 2019 10:13:04 +0000 (11:13 +0100)
Reported by David van der Spoel <spoel@xray.bmc.uu.se>.

* src/base/cl_macros.h (bit, bitm, minus_bit, minus_bitm): Shift an unsigned
value, not a signed value.

src/base/cl_macros.h

index 1679e44756d3b127d7e2cb9bf7737a0ce49fe844..30b819cd4b1917ba429c962d97997753760c97bc 100644 (file)
 
 // Bit number n (0<=n<32 or 0<=n<64)
   #ifdef HAVE_FAST_LONGLONG
-    #define bit(n)  (1LL<<(n))
+    #define bit(n)  (long long)(1ULL<<(n))
   #else
-    #define bit(n)  (1L<<(n))
+    #define bit(n)  (long)(1UL<<(n))
   #endif
 // Bit number n (0<n<=32) mod 2^32
   #ifdef HAVE_FAST_LONGLONG
-    #define bitm(n)  (2LL<<((n)-1))
+    #define bitm(n)  (long long)(2ULL<<((n)-1))
   #else
-    #define bitm(n)  (2L<<((n)-1))
+    #define bitm(n)  (long)(2UL<<((n)-1))
   #endif
 // Test bit n in x, n constant, x a cl_uint:
   #if !(defined(__sparc__) || defined(__sparc64__))
   #endif
 // minus bit number n (0<=n<32 or 0<=n<64)
   #ifdef HAVE_FAST_LONGLONG
-    #define minus_bit(n)  (-1LL<<(n))
+    #define minus_bit(n)  (long long)(-1ULL<<(n))
   #else
-    #define minus_bit(n)  (-1L<<(n))
+    #define minus_bit(n)  (long)(-1UL<<(n))
   #endif
 // minus bit number n (0<n<=32) mod 2^32
   #ifdef HAVE_FAST_LONGLONG
-    #define minus_bitm(n)  (-2LL<<((n)-1))
+    #define minus_bitm(n)  (long long)(-2ULL<<((n)-1))
   #else
-    #define minus_bitm(n)  (-2L<<((n)-1))
+    #define minus_bitm(n)  (long)(-2UL<<((n)-1))
   #endif
 
 // Return 2^n, n a constant expression.