From owner-freebsd-questions Wed Feb 22 12:18:57 1995 Return-Path: questions-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.9/8.6.6) id MAA02626 for questions-outgoing; Wed, 22 Feb 1995 12:18:57 -0800 Received: from halloran-eldar.lcs.mit.edu (halloran-eldar.lcs.mit.edu [18.26.0.159]) by freefall.cdrom.com (8.6.9/8.6.6) with SMTP id MAA02620 for ; Wed, 22 Feb 1995 12:18:55 -0800 Received: by halloran-eldar.lcs.mit.edu; id AA08293; Wed, 22 Feb 1995 15:18:08 -0500 Date: Wed, 22 Feb 1995 15:18:08 -0500 From: Garrett Wollman Message-Id: <9502222018.AA08293@halloran-eldar.lcs.mit.edu> To: James Robinson Cc: questions@FreeBSD.org (FreeBSD questions) Subject: Where does LCLint or other free lint live? In-Reply-To: <199502221702.MAA01904@hermes.cybernetics.net> References: <199502221702.MAA01904@hermes.cybernetics.net> Sender: questions-owner@FreeBSD.org Precedence: bulk < said: > Grr. I've lost my pointers, and archie turns up cold for lclint. `lclint' is not quite a `lint' clone. It checks C programs against formal specifications; it was developed by the people down the hall from me. Try ftp://larch.lcs.mit.edu/pub/Larch/lclint. Here's an excerpt from the README... ------------------------------------ LCLint is a lint-like tool for ANSI C. It can be used like a traditional lint to detect certain classes of C errors statically; if formal specifications are also supplied, it can do more powerful checking to detect inconsistencies between specifications and code. Without specifications, LCLint does many of the checks done by a traditional lint. It reports unused declarations, type inconsistencies, use-before-definition, unreachable code, ignored return values, execution paths with no return, likely infinite loops, and fall-through cases. It provides options for stricter type-checking than standard C (e.g., char and bool types can be treated as distinct from ints.). It does not do much of the portability checking (e.g., pointer alignment) done by typical lints. With partial specifications, written in the Larch interface language, LCL, LCLint does stronger checking. For example, a one-line specification file can declare a type as abstract; LCLint checks that the data abstraction barrier is maintained in clients of the type. This provides the advantages of data encapsulation, making programs easier to understand and maintain. ------------------------------------ -GAWollman -- Garrett A. Wollman | Shashish is simple, it's discreet, it's brief. ... wollman@lcs.mit.edu | Shashish is the bonding of hearts in spite of distance. Opinions not those of| It is a bond more powerful than absence. We like people MIT, LCS, ANA, or NSA| who like Shashish. - Claude McKenzie + Florent Vollant