Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10 UW 5/3/83; site uw-beaver Path: utzoo!linus!decvax!harpo!floyd!whuxlb!pyuxll!eisx!npoiv!npois!hogpc!houti!ariel!vax135!cornell!uw-beaver!jim From: jim@uw-beaver.UUCP Newsgroups: net.unix-wizards Subject: Re: UNIX source code errors detected by new C compiler Message-ID: <707@uw-beaver> Date: Fri, 15-Jul-83 11:29:46 EDT Article-I.D.: uw-beave.707 Posted: Fri Jul 15 11:29:46 1983 Date-Received: Sat, 16-Jul-83 01:47:37 EDT References: <578@hao.UUCP> Organization: U of Washington Computer Science Lines: 17 Green Hills Software, who markets a optimizing C compiler for 68000's and NSC 16032's, claims to have discovered NUMEROUS errors in the 4.1 source code. Their compiler barfed on a substantial portion of the UNIX section 1 and 8 commands, and they feel the errors detected are real even though they don't appear under the 4.1 C compiler. But was this lots of different errors, or the same error many times? I think the problem of code depending on ( *(NULL) == 0 ) is pretty well known and has been in Unix since the beginning of time. Of course this wouldn't be caught by a compiler. Less well known is that the current C language doesn't allow multiple global definitions, but most compilers allow them and much code depends on them. I think it would be nice if the compiler would accept multiple globals but issue an error message so that this usage would go away, much as the '=+' operator has gone away.