Go to main content
Oracle® Developer Studio 12.5: C User's Guide

Exit Print View

Updated: June 2017

5.1 Basic and Enhanced lint Modes

The lint program operates in two modes:

  • Basic, which is the default

  • Enhanced, which provides additional, detailed analysis of code

In both basic and enhanced modes, lint compensates for separate and independent compilation in C by flagging inconsistencies in definition and use across files, including any libraries you have used. In a large project environment where the same function might be used by different programmers in hundreds of separate modules of code, lint can help discover bugs that otherwise might be difficult to find. A function called with one less argument than expected, for example, looks at the stack for a value the call has never pushed, with results correct in one condition, incorrect in another, depending on whatever happens to be in memory at that stack location. By identifying dependencies like this one and dependencies on machine architecture as well, lint can improve the reliability of code run on your machine or someone else’s.

In enhanced mode, lint provides more detailed reporting than in basic mode. In basic mode, lint’s capabilities include:

  • Structure and flow analysis of the source program

  • Constant propagations and constant expression evaluations

  • Analysis of control flow and data flow

  • Analysis of data types usage

In enhanced mode, lint can detect these problems:

  • Unused #include directives, variables, and procedures

  • Memory usage after its deallocation

  • Unused assignments

  • Usage of a variable value before its initialization

  • Deallocation of nonallocated memory

  • Usage of pointers when writing in constant data segments

  • Nonequivalent macro redefinitions

  • Unreached code

  • Conformity of the usage of value types in unions

  • Implicit casts of actual arguments.