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
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to