Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!ll-xn!nike!oliveb!sun!guy From: guy@sun.uucp (Guy Harris) Newsgroups: net.unix-wizards Subject: Re: Microport Unix -- Large Model Problems Message-ID: <8957@sun.uucp> Date: Wed, 5-Nov-86 15:35:44 EST Article-I.D.: sun.8957 Posted: Wed Nov 5 15:35:44 1986 Date-Received: Wed, 5-Nov-86 22:48:20 EST References: <1376@batcomputer.TN.CORNELL.EDU> Organization: Sun Microsystems, Inc. Lines: 23 > To get *all* the right things, we use: > > #ifdef lint > # define null 0 > #else > # define null (char *)0 > #endif > > since lint doesn't understand that comparing an (int *) variable with a > (char *)0 is legitimate. If you use that particular construct, you will get a lot of perfectly legitimate "lint" complaints about argument mismatches when you pass a "null" to a routine that expects a pointer of some sort. Since, given the rationale for this construct, you presumably want to keep "lint" as quiet as possible, you presumably then cast "null" to the appropriate type. Given that, what does the non-"lint" arm of the conditional buy you, other than fixing up a few calls to things like "execl", which are easy enough to fix manually with casts? -- Guy Harris {ihnp4, decvax, seismo, decwrl, ...}!sun!guy guy@sun.com (or guy@sun.arpa)