1 / 14

Lint

Lint. Banyen Sae-Lee 4322031. Introduction. The lint program examines C language source programs detecting a number of bugs and obscurities. It enforces the type rules of C language more strictly than the C compiler.

ipo
Télécharger la présentation

Lint

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lint Banyen Sae-Lee 4322031 Lint

  2. Introduction The lint program examines C language source programs detecting a number of bugs and obscurities. It enforces the type rules of C language more strictly than the C compiler. It may also used to enforce a number of portability restrictions involved in moving programs between different machines and/or operating system. Lint

  3. Introduction Anothor option detects a number of wasteful or error prone constructions, which nevertheless are legal. Lint accepts multiple input files and library specifications and checks them for consistency. Lint

  4. Lint message Types Unused Variables and Functions Lint prints messages about variables and functions which are defined but not otherwise mentioned ดูตัวอย่าง lint1.c Lint

  5. Lint message Types Set/Used information Lint attempts to detect cases where a variable is used before it is set. Lint detects local variables (automatic and register storage classes) whose first use appears physically earlier in the input file than the first assignment to the variable. Lint

  6. Lint message Types Flow Control Lint attempt to detect unreachable portions of a program. It will print messages about unlabeled statements immediately following goto, break, continue, or return statements. Lint

  7. Lint message Types Flow Control Lint attempts to detect loops that cannot be left at the bottom and to recognize the special case while(1) and for(;;) as infinite loops. Lint also prints messages about loops that cannot be entered at the top. Lint

  8. Lint message Types Flow Control Lint has no way of detecting functions that are called and never return. Thus, a call to exit may cause unreachable code which lint does not detect. Lint

  9. Lint message Types Function Values Sometimes funcitons return values that are never used. Sometimes programs incorrectly use function values that have never been returned. Lint addresses this problem in a number of ways. Lint

  10. Lint message Types Type Checking Lint enforces the type checking rules of C language more strictly that the compilers do. The additional checking is in four major areas: • across certain binary operators and implied assignments • at the structure selection operators Lint

  11. Lint message Types Type Checking • between the definition and uses of functions • in the use of enumerations Lint

  12. Lint message Types Multiple Uses and Side Effects In complicated expressions, the best order in which to evaluate sub expressions may be highly machine dependent. For example, on machines in which the stack runs backwards, function arguments will probably be best evaluated from right to left. On machines with a stack running forward, left to right seems most attractive. Lint

  13. Lint message Types Multiple Uses and Side Effects If any variable is changed by a side effect and also used elsewhere in the same expression, the result is explicitly undefined Lint checks for the important special case where a simple scalar variable is affected. For example, the statement a[i] = b[i++]; Lint

  14. Reference • Robin Burk and David B. Horvath, CCP.,et al., UNIX Unreleased Internet Edition, Techmedia Monish Plaza, 20, Ansari Road, Darya Ganj, New Delhi-2., 1998. • Tare, Ramkrish na S, UNIX Utilities, New York : McGraw-Hill, 1988. Lint

More Related