Mercurial > hg > octave-nkf > gnulib-hg
changeset 9422:3339034f1b1c
Fix "integer overflow" warnings with OSF/1 5.1 cc.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Mon, 29 Oct 2007 03:59:04 +0100 |
parents | 53272c9631e5 |
children | fa47aa8bb105 |
files | ChangeLog lib/stdint.in.h |
diffstat | 2 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-10-28 Bruno Haible <bruno@clisp.org> + + * lib/stdint.in.h (_STDINT_MAX): Subtract 1 from an unused signed + integer shift in the signed case. Fixes warnings with OSF/1 5.1 cc. + 2007-10-28 Bruno Haible <bruno@clisp.org> Fix link errors with Sun C 5.0 on Solaris 10.
--- a/lib/stdint.in.h +++ b/lib/stdint.in.h @@ -101,7 +101,10 @@ #define _STDINT_MAX(signed, bits, zero) \ ((signed) \ ? ~ _STDINT_MIN (signed, bits, zero) \ - : ((((zero) + 1) << ((bits) ? (bits) - 1 : 0)) - 1) * 2 + 1) + : /* The expression for the unsigned case. The subtraction of (signed) \ + is a nop in the unsigned case and avoids "signed integer overflow" \ + warnings in the signed case. */ \ + ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1) /* 7.18.1.1. Exact-width integer types */