Hi Everyone,

Integer class took a bug report under Sun Studio 12.4. Also see Issue 184: 
Error: 
The operand "___LKDB" cannot be assigned to 
(http://github.com/weidai11/cryptopp/issues/188).

Sun CC 12.4 is an important Sun compiler because its their C++11 compiler. 
I'm fairly certain the bug report is bogus, and its a compiler bug. Never 
the less, we had to work around it.

The hack is available at 
http://github.com/weidai11/cryptopp/commit/7e06c1dce4b0ebc89708ba7afbcc23ff9093f4ea.
 
The essence of the hack is:

  #if (__SUNPRO_CC == 0x5130)
  # define MAYBE_CONST
  #else
  # define MAYBE_CONST const
  #endif

    ...
  static word LinearMultiply(word *C, const word *AA, word B, size_t N)
  {
    MAYBE_CONST word* A = const_cast<word*>(AA);

    word carry=0;
    for(unsigned i=0; i<N; i++)
    {
        Declare2Words(p);
        MultiplyWords(p, A[i], B);
        Acc2WordsBy1(p, carry);
        C[i] = LowWord(p);
        carry = HighWord(p);
    }
    return carry;
  }

Under Sun CC, we cast away the const-ness. Under other compilers, we cast 
it away but restore it through MAYBE_CONST. For the other compilers, we are 
just creating a shadow.

I want to ensure there are __**NO**__ performance hits for this one.

If possible, could we get some testing under Visual Studio 2015 and 2016?

Jeff

-- 
-- 
You received this message because you are subscribed to the "Crypto++ Users" 
Google Group.
To unsubscribe, send an email to [email protected].
More information about Crypto++ and this group is available at 
http://www.cryptopp.com.
--- 
You received this message because you are subscribed to the Google Groups 
"Crypto++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to