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>