Date: Tue, 11 Sep 2001 12:54:13 -0700 From: Peter Wemm <peter@wemm.org> To: Bruce Evans <bde@zeta.org.au> 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: <20010911195414.7D4D5380A@overcee.netplex.com.au> In-Reply-To: <20010912002041.J5036-100000@delplex.bde.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Bruce Evans wrote: > On Mon, 10 Sep 2001, Brian F. Feldman wrote: > > > Mark Murray <mark@grondar.za> wrote: > > > > This hack brought to you by some questionable ``optimizations'' in gc c-3. > > > > gcc-3 takes it apon itself to convert: > > > > printf("string\n") -> puts("string"); > > > > and: > > > > printf("a"); -> putchar('a') > > > > etc. I dont know what they've been smoking over there in gcc-land, b ut > > > > it must be pretty good stuff. > > > > > > This "optimzation" on the part of GCC is extremely rude, IMVHO. Is there > > > a way (#define ?) of permanently disabling it? > > > > > > C is not FORTRAN - there are no intrinsic functions in C. Grrrrr..... > > > > Agreed. Peter's original comment was absolutely justified. The _ONLY_ cas e > > I can see this possibly being even moderately alright is if it is somehow > > done in a way that makes it act like a macro definition and can be > > #undefined or (called)() in one of the standard ways. > > 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? 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. 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. > Bruce > > > Cheers, -Peter -- Peter Wemm - peter@FreeBSD.org; peter@yahoo-inc.com; peter@netplex.com.au "All of this is for nothing if we don't go to the stars" - JMS/B5 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?20010911195414.7D4D5380A>