Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 30 Nov 2003 00:40:41 +1100 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        Marcel Moolenaar <marcel@xcllnt.net>
Cc:        standards@freebsd.org
Subject:   Re: 64-bit NULL: a followup
Message-ID:  <20031130003519.M1415@gamplex.bde.org>
In-Reply-To: <20031129055619.GA48381@dhcp01.pn.xcllnt.net>
References:  <20031129005823.GA20090@dhcp01.pn.xcllnt.net> <20031129055619.GA48381@dhcp01.pn.xcllnt.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 28 Nov 2003, Marcel Moolenaar wrote:

> On Sat, Nov 29, 2003 at 04:39:14PM +1100, Bruce Evans wrote:

> > > Since Erik thinks 0 and 0L are both perfectly good definitions for
> > > NULL and Tony emphasizes that NULL is an integer expression, I think
> >                                      ^^ may be
> > > we should change the definition of NULL to 0L to improve portability
> > > to FreeBSD/LP64. It will definitely fix known breakages on ia64.
> >
> > This would be bogus.  Long doesn't have the same width as `void *' on all
> > machines.
>
> The bogusness doesn't increase if we're looking at widths. It actually
> reduces. The FreeBSD runtime is either ILP32 or LP64. Hence, defining
> NULL as long is better than defining it as int. For those running
> IP32L64, NULL can trivially be redefined as int.

It could be MD in all cases to hide bugs in a MD way.

> > ((void *)0) is better, but I wouldn't change it, except
> > locally to trap errors.
>
> Ok, so what is better (void*)0 or 0L?

I thought the former, but forgot about C++.  There could be ugly ifdefs
for this.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20031130003519.M1415>