From 40d9583ff48bcdd4c3484eabf64b7d93ff1e59e0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se>
Date: Thu, 24 Nov 2011 15:01:25 +0100
Subject: [PATCH] (ROL64): Use (uint64_t) 1 rather than 1L, for systems. Needed
 for M$ w64. (RSHIFT64): Likewise. Also added a missing parenthesis.

Rev: nettle/ChangeLog:1.236
Rev: nettle/serpent-internal.h:1.2
---
 ChangeLog          | 4 ++++
 serpent-internal.h | 6 +++---
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 945699ea..dfb8c824 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2011-11-24  Niels M�ller  <nisse@lysator.liu.se>
 
+	* serpent-internal.h (ROL64): Use (uint64_t) 1 rather than 1L, for
+	systems. Needed for M$ w64.
+	(RSHIFT64): Likewise. Also added a missing parenthesis.
+
 	From Martin Storsj�:
 	* testsuite/symbols-test: Use $NM, falling back to nm if undefined.
 	* testsuite/Makefile.in (check): Pass $(NM) in the environment of
diff --git a/serpent-internal.h b/serpent-internal.h
index 66d5af49..dffd9296 100644
--- a/serpent-internal.h
+++ b/serpent-internal.h
@@ -55,8 +55,8 @@
 #if HAVE_NATIVE_64_BIT
 /* Operate independently on both halves of a 64-bit word. */
 #define ROL64(x,n) \
-  (((x) << (n) & ~(((1L << (n))-1) << 32)) \
-   |(((x) >> (32-(n))) & ~(((1L << (32-(n)))-1) << (n))))
+  (((x) << (n) & ~((((uint64_t) 1 << (n))-1) << 32)) \
+   |(((x) >> (32-(n))) & ~((((uint64_t) 1 << (32-(n)))-1) << (n))))
 
 #define KEYXOR64(x0,x1,x2,x3, subkey)		       \
   do {						       \
@@ -68,7 +68,7 @@
   } while (0)
 
 #define RSHIFT64(x,n) \
-  ( ((x) << (n)) & ~(((1L << n) - 1) << 32))
+  ( ((x) << (n)) & ~((((uint64_t) 1 << (n)) - 1) << 32))
 #endif /* HAVE_NATIVE_64_BIT */
 
 #endif /* NETTLE_SERPENT_INTERNAL_H_INCLUDED */
-- 
GitLab