On Thu, Sep 03, 2009 at 03:25:26PM +0200, Dag-Erling Smørgrav wrote: > > This is actually not good enough. ISO C doesn't specify whether plain > > char is signed or unsigned. > > This is FreeBSD. Our char is signed. On systems where it isn't (IRIX > is the only one I know of), the cast is a no-op.
GCC's default for ARM is unsigned. Just to name the most popular platform. I don't know if FreeBSD has local patches, but I expect a non-trivial amount of code is ported from/to ARM systems as well. > > > Also, isascii is the only exception to this rule, so the change for that > > is wrong. > > No. The fact that isascii() accidentally returns the correct answer > even in the absence of a cast is irrelevant. Passing a signed char to > isascii() invokes undefined behavior. To quote SUS: The isascii() function shall return non-zero if c is a 7-bit US-ASCII character code between 0 and octal 0177 inclusive; otherwise, it shall return 0. Joerg _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"