svn commit: r336835 - head/lib/libc/gen
Konstantin Belousov
kostikbel at gmail.com
Sat Jul 28 20:06:27 UTC 2018
On Sat, Jul 28, 2018 at 07:08:00PM +0000, Conrad Meyer wrote:
> For unclear reasons, POSIX' definition of these routines spells NULL as
> "(char *)0." This is needlessly unclear. One guess might be that POSIX
> targets more exotic computer architectures than FreeBSD does. Fortunately,
> there is no such problem on any reasonable platform for FreeBSD to support.
> Spell NULL as NULL.
The reasons are quite clear. Practically NULL has to be defined as '0'
or '0L' at best, for C and esp. C++ rules of the pointers automatic
casts to work. This means that NULL cannot be used in vararg lists where
the pointer is expected.
In other words, the (char *)0 part of the pre-commit text was correct,
while after-commit use of NULL only works on machines where pointers
have the same representation as ints or longs.
More information about the svn-src-all
mailing list