Date: Thu, 9 Aug 2018 09:03:02 -0700 From: Conrad Meyer <cem@freebsd.org> To: Benjamin Kaduk <bjkfbsd@gmail.com> Cc: src-committers <src-committers@freebsd.org>, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r337535 - head/sbin/init Message-ID: <CAG6CVpU8jwQJiNsf6B5Gq75QHEoGaT4K-dCK6Drc59ETPH4VRw@mail.gmail.com> In-Reply-To: <CAJ5_RoBVWZgMgoNGkTkCMB9kU5Ci1GcN-p_Ad-FMMwhO%2BQX5VA@mail.gmail.com> References: <201808091217.w79CH3gO096411@repo.freebsd.org> <CAJ5_RoBVWZgMgoNGkTkCMB9kU5Ci1GcN-p_Ad-FMMwhO%2BQX5VA@mail.gmail.com>
index | next in thread | previous in thread | raw e-mail
On Thu, Aug 9, 2018 at 5:52 AM, Benjamin Kaduk <bjkfbsd@gmail.com> wrote: > On Thu, Aug 9, 2018 at 7:17 AM, Edward Tomasz Napierala <trasz@freebsd.org> > wrote: >> Use NULLs instead of casted zeroes, for consistency. > > It's probably helpful to note explicitly that these are not in arguments to > varargs functions, I don't think it's helpful. > in which case the explicit cast is needed in order to produce a program that > will have > correct behavior on all compliant compilers/systems. Here "compliant" means "minimally compliant to the C standard." Use of NULL in varargs is functionally correct on all FreeBSD systems. > (We do define NULL to > be a zero-with-cast, > but programs (Ones that care about portability to weird systems.) I don't think BSD's 500 line init — hyper local to FreeBSD — is a strong candidate for portability. > should not assume that NULL will be of pointer type -- "An > integer constant > expression with the value 0, or such an expression cast to type void *, is > called a null pointer constant".) Right. The problem only arises when both conditions are met: 1. The system's varargs representation is smaller than the pointer representation, and 2. The runtime headers do not defined NULL as a pointer-typed value. (3. The function being invoked is actually varargs?) Neither is true on FreeBSD and v7-style init is not a useful place to call for portability. All the best, Conradhome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAG6CVpU8jwQJiNsf6B5Gq75QHEoGaT4K-dCK6Drc59ETPH4VRw>
