summaryrefslogtreecommitdiff
path: root/tea.cpp
diff options
context:
space:
mode:
authorweidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0>2010-07-05 01:15:14 +0000
committerweidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0>2010-07-05 01:15:14 +0000
commit55a8ab1c8b2d3ff2ad7b3325f87e78b8976a6169 (patch)
treebdfe463fd8b180c37b65007e19a29aa915fff3b3 /tea.cpp
parent32a4a9f72510c22a1c4ef7b73b0496ea031a090b (diff)
downloadcryptopp-55a8ab1c8b2d3ff2ad7b3325f87e78b8976a6169.tar.gz
port to Sun Studio 12u1 Sun C++ 5.10 SunOS_i386 128229-02 2009/09/21
change makefile to compile for both i386 and x86_64 on Darwin/Mac OS X git-svn-id: svn://svn.code.sf.net/p/cryptopp/code/trunk/c5@499 57ff6487-cd31-0410-9ec3-f628ee90f5f0
Diffstat (limited to 'tea.cpp')
-rw-r--r--tea.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/tea.cpp b/tea.cpp
index 60921d4..b1fb6f1 100644
--- a/tea.cpp
+++ b/tea.cpp
@@ -62,8 +62,14 @@ void XTEA::Enc::ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, by
word32 y, z;
Block::Get(inBlock)(y)(z);
+#ifdef __SUNPRO_CC
+ // workaround needed on Sun Studio 12u1 Sun C++ 5.10 SunOS_i386 128229-02 2009/09/21
+ size_t sum = 0;
+ while ((sum&0xffffffff) != m_limit)
+#else
word32 sum = 0;
while (sum != m_limit)
+#endif
{
y += (z<<4 ^ z>>5) + z ^ sum + m_k[sum&3];
sum += DELTA;
@@ -78,8 +84,14 @@ void XTEA::Dec::ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, by
word32 y, z;
Block::Get(inBlock)(y)(z);
+#ifdef __SUNPRO_CC
+ // workaround needed on Sun Studio 12u1 Sun C++ 5.10 SunOS_i386 128229-02 2009/09/21
+ size_t sum = m_limit;
+ while ((sum&0xffffffff) != 0)
+#else
word32 sum = m_limit;
while (sum != 0)
+#endif
{
z -= (y<<4 ^ y>>5) + y ^ sum + m_k[sum>>11 & 3];
sum -= DELTA;