Date: Wed, 12 Sep 2001 22:54:56 +1000 (EST) From: Bruce Evans <bde@zeta.org.au> To: Peter Wemm <peter@wemm.org> Cc: "Brian F. Feldman" <green@FreeBSD.org>, Mark Murray <mark@grondar.za>, <cvs-committers@FreeBSD.org>, <cvs-all@FreeBSD.org> Subject: Re: cvs commit: src/sys/kern subr_prf.c src/sys/sys systm.h Message-ID: <20010912224439.B1472-100000@delplex.bde.org> In-Reply-To: <20010911195414.7D4D5380A@overcee.netplex.com.au>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 11 Sep 2001, Peter Wemm wrote: > Bruce Evans wrote: > > Disagreed. This seems like a normal optimization to me. It's like > > replacing strlen("foo") by 3. > > This is bogus too. Who says that strlen("foo") returns three in the library > I am linking with? The C standard :-). > These optimizations should only be activated if #include <string.h> > or #include <stdio.h> and there is some sort of attribute marker on > the functions being optimized. Perhaps to be kind to external implementations, but the C standard permits the implementation (compiler + possibly-external) to implement extern interfaces like strlen() in any way that meets the requirements of the standard. > Unless I #include <string.h>, then strlen() is not any of the compiler's > business. Unless I #include <stdio.h>, then printf() is not any of the > compiler's business. Otherwise any under-the-table substitutions are > bogus. These functions are not part of the core language spec, they are > something that is introduced as part of the optional includes and standard > c library. This only holds for things like "NULL" which are only reserved if a relevant header is included (or in the freestanding case). In the hosted case, the library non-optional. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010912224439.B1472-100000>