Oracle® Solaris Studio 12.4: C User's Guide

Exit Print View

Updated: March 2015
 
 

4.3.27 -Nlevel=n

(Obsolete) The -Nlevel option will be removed in a future release.

Enables enhanced lint mode by specifying the level of enhanced lint analysis for reporting problems. This option provides control of the amount of errors detected. The higher the level, the longer the verification time. n is a number: 1, 2, 3, or 4. There is no default. If you do not specify -Nlevel, lint uses its basic analysis mode. If you specify -Nlevel without an argument, lint sets -Nlevel=4.

See Using lint for an explanation of basic and enhanced lint modes.

4.3.27.1 -Nlevel=1

Analyzes single procedures. Reports unconditional errors that occur on some program execution paths. Does not do global data and control flow analysis.

4.3.27.2 -Nlevel=2

Analyzes the whole program, including global data and control flow. Reports unconditional errors that occur on some program execution paths.

4.3.27.3 -Nlevel=3

Analyzes the whole program, including constant propagation (cases when constants are used as actual arguments) as well as the analysis performed under -Nlevel=2.

Verification of a C program at this analysis level takes two to four times longer than at the preceding level. The extra time is required because lint assumes partial interpretation of the program by creating sets of possible values for program variables. These sets of variables are created on the basis of constants and conditional statements that contain constant operands available in the program. The sets form the basis for creating other sets (a form of constant propagation).

Sets received as the result of the analysis are evaluated for correctness according to the following algorithm:

  • If a correct value exists among all possible values of an object, then that correct value is used as the basis for further propagation; otherwise an error is diagnosed.

4.3.27.4 -Nlevel=4

Analyzes the whole program, and reports conditional errors that could occur when certain program execution paths are used, as well as the analysis performed under -Nlevel=3.

At this analysis level, there are additional diagnostic messages. The analysis algorithm generally corresponds to the analysis algorithm of -Nlevel=3 with the exception that any invalid values now generate an error message. The amount of time required for analysis at this level can increase as much as two orders (about 20 to 100 times more slowly). In this case, the extra time required is directly proportional to the program complexity as characterized by recursion, conditional statements and the like. As a result using this level of analysis might be difficult for a program that exceeds 100,000 lines.