Cleanscape C++lint Specifications

Features in red are Cleanscape Exclusive
Feature Description
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.
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.
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.
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.