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.