Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!decvax!microsof!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-beave.UUCP> Date: Fri, 15-Jul-83 08:29:46 EDT Article-I.D.: uw-beave.707 Posted: Fri Jul 15 08:29:46 1983 Date-Received: Sat, 16-Jul-83 13:25:23 EDT References: <578@hao.UUCP> 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.