What Was New in Version 7.00?

New Features | New Options | Support for Embedded Systems | New MessagesDesigner's Notes | What's new in Version 7.50? | What's new in Version 8.00? 


Version 7.00 featured lots of new checks and features, including inter-statement value tracking, to detect even more of those hard-to-find-bugs.

We addressed a number of problems that users have been faced with. In particular, support for long filenames. 

We support incremental linting of C++ code and, therefore, we've discontinued "PC-lint for C". PC-lint for C/C++ version 7.00 will process a mixed suite of C and C++ modules and is upward compatible with all previous versions of PC-lint.


New Features


New Flag Options

New Error Inhibition Options

New Size Options

Other New (or Extended) Options


More Support for Embedded Systems

Compilers for embedded systems often extend C in (non standard) ways that could trip up PC-lint/FlexeLint. Accordingly, we have added several options to support the most common extensions. +fba is the Bit addressability flag that will allow, for example, n.3 to represent the 3rd bit of integer variable n. Another extension allows for specifying the address of a memory mapped object. For example,

    Port pa = 0xFFFF0000;  

We now support some of the unusual syntactic constructs of the Whitesmith compiler. Use of the -cwh option allows us to support, for example,

    @eeprom char x @base +1;  


All together we've added 86 new messages in Version 7.00
Here is a sampling:

613   Possible use of null pointer in [left/right] argument to operator 'String'
661   Possible access of out-of-bounds pointer by operator 'String'
662   Possible creation of out-of-bounds pointer by operator 'String'
665   Unparenthesized parameter 'Integer' in macro 'Symbol' is passed an expression
666   Expression with side effects passed to repeated parameter 'Integer' of macro 'Symbol'
668   Possibly passing a null pointer to function 'Symbol', 'Context'
669   Possible data overrun for function 'Symbol', argument 'Integer' exceeds argument 'Integer'
670   Possible access beyond array for function 'Symbol', argument 'Integer' exceeds 'Integer'
773   Expression-like macro 'Symbol' not parenthesized
1401  member 'Symbol' (Location) not initialized by constructor
1529  'Symbol' not first checking for assignment to this
1540  pointer member 'Symbol' (Location) neither freed nor zero’ed by destructor
1541  member 'Symbol' (Location) possibly not initialized by constructor
1542  member 'Symbol' (Location) possibly not initialized
1544  value of 'Symbol' (Location) indeterminate (order of initialization)
1545  value of 'Symbol' used previously to initialize 'Symbol' (Location)
1740  pointer member 'Symbol' (Location) not directly freed or zero'ed by destructor
1744  member 'Symbol' (Location) possibly not initialized by private constructor

Home | Contact | Order

Copyright © 2005, Gimpel Software