FlexeLint is a powerful static analysis tool that will check your C/C++ source code and find bugs, glitches, inconsistencies, non-portable constructs, redundant code, and much more. It looks across multiple modules, and so, enjoys a perspective your compiler does not have.
Platforms:
FlexeLint for C/C++:
Unix and Unix-like platforms(Linux, AIX, HP-UX, Solaris, Tru64 Unix, MAC, etc.)
OpenVMS
Embedded Systems
virtually any platform supporting C
Compatibility:
supports K&R C, ANSI C, ANSI/ISO C++
explicit support for Microsoft, GCC and most other major compilers and libraries
support for most major embedded-system compilers including bit addressing.
numerous options to support rogue compilers
scalars sizes can be specified for cross-compiling
Special Checking Facilities:
value tracking of auto and static (even global) variable, to detect subtle initialization and value misuse problems
Inter-function Value Tracking -- The powerful inter-statement value tracking crosses function boundaries. Functions called with specific values are later processed, with these values used to initialize parameters.
Multi-Pass -- To take full advantage of inter-function tracking and static variable tracking, a multi-pass operation has been introduced. The user can control the number of passes. (See Designer's Notes)
with value tracking as an enabling technology, we support 憇emantics? checking for almost 100 library functions, this checking can be extended to user functions (see function mimicry)
optional strong type checking (typedef-based) with a rich option set to detect nominal type differences. You can even form a fully checked type hierarchy of scalar types using only typedef
user-defined semantic checking for function arguments and return values
find unused macros, typedef's, classes, members, declarations, etc. across the entire project (see weak definials)
checks flow of control for possibly uninitialized variables.
explicit support for a subset of the MISRA C and MISRA C++ (TM) (Motor Industry Software Reliability Association) standards
other special torture tests
Speed:
Multiple modules are processed at high speed using pre-compiled headers
Message Suppression and Enabling:
by message number
by message number and symbol name (including wild cards)
by message number and symbol type
by message number and message parameter
one-line suppression
by macro name
for library headers, by message number (a header is library depending on how it is included; this can be overridden via user options)
for specified functions, by message number
for expressions
Flexibility:
indirect files (nested to any depth) can contain filenames, options, environment variables
format of lint error messages can be customized to support integration with a wide variety of editors and IDEs
all options can be embedded in user code
Performance:
fast one-pass operation, with a multi-pass option for inter-function value tracking
robust - tables will expand as needed to handle large applications
© Copyright 2000-2023 COGITO SOFTWARE CO.,LTD. All rights reserved