large integer implicitly truncated to unsigned type

Keith Owens kaos@ocs.com.au
Sun Oct 22 23:58:00 GMT 2000


CVS gcc October 22, 2000 gives lots of

  warning: large integer implicitly truncated to unsigned type

messages for constructs like this.

  #define CMSG_ALIGN(len) ( ((len)+sizeof(long)-1) & ~(sizeof(long)-1) )

Changing to

  #define CMSG_ALIGN(len) ( ((len)+sizeof(long)-1) & (unsigned)~(sizeof(long)-1) )

removes the warning.  Is this warning message correct and is it going
to be a permanent feature of gcc?  If so I will do a kernel patch to
make (unsigned) explicit.



More information about the Gcc-bugs mailing list