> --- a/gmp-h.in Thu Jan 02 12:28:21 2014 +0100 > +++ b/gmp-h.in Thu Jan 02 13:25:31 2014 +0100 > @@ -437,10 +437,10 @@ > #define __GMP_MAX(h,i) ((h) > (i) ? (h) : (i)) > > /* __GMP_USHRT_MAX is not "~ (unsigned short) 0" because short is promoted > - to int by "~". */ > + to int by "~". It still needs to have the promoted type. */ > #define __GMP_UINT_MAX (~ (unsigned) 0) > #define __GMP_ULONG_MAX (~ (unsigned long) 0) > -#define __GMP_USHRT_MAX ((unsigned short) ~0) > +#define __GMP_USHRT_MAX (0 + (unsigned short) ~0)
Note that if you want to care of non-two's-complement implementations, you should write: #define __GMP_USHRT_MAX (0 + (unsigned short) -1) I also find this code slightly more readable (since U..._MAX + 1 = 0 by definition, without having to think of the binary representation). -- Vincent Lefèvre <vinc...@vinc17.net> - Web: <http://www.vinc17.net/> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.net/blog/> Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon) _______________________________________________ gmp-devel mailing list gmp-devel@gmplib.org https://gmplib.org/mailman/listinfo/gmp-devel