Date: Wed, 27 Feb 2002 11:07:52 -0800 From: Bill Fenner <fenner@research.att.com> To: julian@elischer.org Cc: cvs-committers@freebsd.org, cvs-all@freebsd.org Subject: Re: cvs commit: src/sys/dev/usb ohci.c uhci.c Message-ID: <200202271907.LAA08891@windsor.research.att.com>
next in thread | raw e-mail | index | archive | help
>maybe a comment may stall that..
This is a relatively harmless instance;
/* this should be for(x;y;z) except gcc sucks */
but what about when it requires completely rearchitecting the code
to silence the buggy compiler? I wish I could find this example, but
I only noted it and said "ugh" and moved on -- when comparing our code
with that of another project, they had completely rewritten some very
straightforward code that looked more or less like:
switch (x) {
case foo:
fmt = "%s foo";
break;
case bar:
fmt = "%s bar";
break;
}
printf(fmt, bletch);
(but many more cases and many more printf arguments) to include the
printf in every case -- presumably to avoid warnings from a mechanical
tool that "knew" that any non-constant format string was an opening
for format string vulnerabilities. That change opened up lots of
opportunities for cut'n'paste errors, maintenance problems if you wanted
to change the printf argument list, etc -- for what benefit?
I think asmodai said it quite succinctly:
"compilers and related tools should facilitate the programming, the
programming should not facilitate the compiler and tools."
Bill
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?200202271907.LAA08891>
