Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!think!harvard!seismo!umcp-cs!chris From: chris@umcp-cs.UUCP (Chris Torek) Newsgroups: net.lang.c Subject: Re: using lint on `commercial' code Message-ID: <1308@umcp-cs.UUCP> Date: Mon, 5-May-86 00:51:18 EDT Article-I.D.: umcp-cs.1308 Posted: Mon May 5 00:51:18 1986 Date-Received: Tue, 6-May-86 06:49:43 EDT References: <531@bu-cs.UUCP> Reply-To: chris@maryland.UUCP (Chris Torek) Organization: University of Maryland, Dept. of Computer Sci. Lines: 42 In article <531@bu-cs.UUCP> bzs@bu-cs.UUCP (Barry Shein) writes: >A more interesting idea: Would it be reasonable to run a vendor's >code you just bought through LINT and call their warranty dept if >there was any serious bitching by lint? The answer to that depends on the purpose for which the software was sold (and bought). In practice I suspect this would be entirely unproductive: You would spend all your time on the phone, and never have a chance to use the software. . . . Anecdote: We had some Imagen software that was working on a Vax. We moved the software to a Pyramid and it broke. I ran lint on the program in question. Among the several hundred lines of other errors, it pointed out the one that was causing the failure: struct foo { int i; } foo[128]; caller() { ... callee(foo[n]); ... } callee(i) int i; { /* do something with i */ } This works on most machines; since the structure contains no `holes', one member of that structure is the same size as one integer, and the two can be treated as equivalent. But the Pyramid has a register window architecture, and passes `simple' arguments in registers, reserving the data stack for `complex' arguments---such as (drum roll please) structures. -- In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 1415) UUCP: seismo!umcp-cs!chris CSNet: chris@umcp-cs ARPA: chris@mimsy.umd.edu