| Features in red are Cleanscape Exclusive | |
| Feature | Description |
| LINT ANALYSIS OPTIONS | |
| Warning Level | Control the depth of analysis to be performed, including fatal/severe, warnings, informational and/or elective messages. |
| Author/Industry Checks | Enable explicit Scott Meyers, MISRA C/C++, or Dan Saks checks. |
| Target System | Select from over 100 compilers, including Microsoft, gnu, Borland, or numerous embedded compilers. External tools extract information about other compilers, then add the new compiler to the dropdown. |
| ANSI Compliance | Detect non-ANSI keywords (portability analysis). |
| Bypass Headers | Scan specified header files only once, saving analysis time. |
| REPORT OPTIONS | |
| Inheritance | Generate class hierarchy report. |
| Include Tree | Generate include tree, with options to suppress system headers or identify identical header filenames in different directories. |
| Stack Usage | Show storage and stack requirements on a function-by-function basis. |
| External Editor | Select the external code editor to be invoked when clicking a hyperlink. External program 'seteditor' can add your own editor to the dropdown list. |
| Statistics | File counts, symbol types/counts, and message counts/summary. |
| MISCELLANEOUS OPTIONS | |
| Include Directories | Add include file directories. |
| System (Library) Directives | Specify which include files/directories are system (rather than local). |
| Define/Undefine Symbols | Define or undefine a preprocessor symbol. |
| Enable/Disable Lint Messages | Enable or disable specific Gimpel PC-lint analyses based on the message number. |
| Enable/Disable Verbosity/Flag Options | Enable or disable specific Gimpel PC-lint verbosity and flag options. |
| Enable/Disable Semantics/Threading | Enter controls for function mimicry, user-defined semantics, and multithreading with mutexes, lock/unlock, and thread safety. |
| Help Menu | Each control option is described in the Contents and Index section; also supplies equivalent command line parameters. A GUI quick start guide and the full PC-lint user manual are also available from the Help menu. |
| INNOVATIVE CODE ANALYSIS | |
| Security and anti-hacking analyses | Analyses to detect coding practices that leave code vulnerable, such as buffer overrun. |
| Powerful yet intuitive graphical interface | Fast and interactive environment overlays powerful Gimpel PC-lint command line engine and also controls four other innovative analyses, with hyperlinks using specified external programming editor. |
| Multithread Analysis | Abnormalities in locking and unlocking are identified. Reports are made of unprotected access to static variables shared by multiple threads. Functions compatible with only a subset of threads can be identified. |
| Strong Type Checking | "Magic comments" implement type-checking that Pascal has and that C and C++ lack A type hierarchy scheme provides flexibility. 12 modes of checking with numerous submodes are available (e.g., check assignments, extractions, joins, indexing into arrays, type hierarchies). |
| Value Tracking | Type of dataflow analysis where information is retained about automatic variables, data members of the this class, and static variables to detect out-of-bounds subscripts, division by 0, inappropriate use of NULL pointers, creation of illegal pointers, and redundant Boolean tests. |
| Checks on Weak Definials | Macro definitions, TYPEDEFs, declarations, STRUCT/UNION/ENUM definitions and members, and templates are checked for redundancy and/or whether they are unused. Information is provided as to whether they may be safely removed or tagged STATIC. |
| Possibly Uninitialized | Type of dataflow analysis to determine whether variables are initialized for all branches of conditional constructs and forward GOTOs. Data members of C++ classes are also inspected. |
| Function Mimicry | Type of dataflow analysis to allow user-created functions to match the argument lists of certain standard functions (e.g., fopen or printf). |
| User-defined Function Semantics Checking | Type of dataflow analysis using "magic comments" to create user-defined semantics for thorough checking of user-created functions. |