Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 28 Nov 2003 21:56:19 -0800
From:      Marcel Moolenaar <marcel@xcllnt.net>
To:        Bruce Evans <bde@zeta.org.au>
Cc:        standards@freebsd.org
Subject:   Re: 64-bit NULL: a followup
Message-ID:  <20031129055619.GA48381@dhcp01.pn.xcllnt.net>
In-Reply-To: <20031129161509.J4841@gamplex.bde.org>
References:  <20031129005823.GA20090@dhcp01.pn.xcllnt.net> <20031129161509.J4841@gamplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Nov 29, 2003 at 04:39:14PM +1100, Bruce Evans wrote:
> 
> > So, the bottomline is that we currently do have third-party code that
> > fails to run on ia64 (and possibly other 64-bit platforms) due to the
> > fact that NULL is defined as 0.
> >
> > 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.

> ((void *)0) is better, but I wouldn't change it, except
> locally to trap errors.

Ok, so what is better (void*)0 or 0L?

-- 
 Marcel Moolenaar	  USPA: A-39004		 marcel@xcllnt.net



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