Help stabilising mini-gmp

Torbjörn Granlund tg at
Fri Nov 25 17:39:28 UTC 2016

Marc Glisse <marc.glisse at> writes:

  Surprisingly, shifting negative numbers left is undefined, while
  shifting them right it implementation-defined.
I fail to appreciate the difference between these definitions of

I assume "undefined" means that the computer will not explode, or even
cause any less dramatic security issues, or even terminate execution.
It's undefined only in that the result can be any bit pattern.  This bit
pattern might vary bewteen any two computers, with used compiler and
between two executions.

And "implementation-defined" means that the bit pattern can be anything,
varying between computers (or compiler on one computer).

So it seems the only difference is that "implementation-defined" means
that two executions (compiled in the same way on a given computer) will
yield the same arbitrary bit pattern.  How useful.  :-)

Please encrypt, key id 0xC8601622

More information about the gmp-devel mailing list