svn commit: r335041 - head/lib/libc/stdlib
Bruce Evans
brde at optusnet.com.au
Wed Jun 13 10:03:25 UTC 2018
On Wed, 13 Jun 2018, Eitan Adler wrote:
> Log:
> libc: remove explicit cast NULL in atoi
>
> There isn't any reason to cast NULL so just remove it. Noticed when
> cleaning up top.
There are many reasons to cast NULL for all members of the ato*() family:
- it is required if no prototype is in scope
- C99 specifies ato*() in terms of strtol*() and uses the cast to NULL,
probably because this is simplest. Omitting the cast is just wrong
if no prototype is in scope. Writing the explicit cast is simpler than
writing caveats that the stated equivalence is only valid if a prototype
is in scope.
- POSIX specifies ato*() in terms of strtol*() and uses the cast to NULL,
exactly as in C99, probably because it defers to the C standard and
doesn't and doesn't risk breaking it by changing its wording except when
extending it.
FreeBSD used to do the same here, and should do the same here and elsewhere
by copying better wording from POSIX whenever possible.
Bruce
More information about the svn-src-all
mailing list