Gimpel have just released PC-lint 9.00l - which looks to be a pretty important update to PC-lint 9.0 over the previous build (9.00k). You can download patch itself and updated versions of the corresponding support files from the PC-lint 9.0 patch page.
This update significantly improves MISRA and C++ 11 support, so if you are using MISRA, have C++ 11 code or are using Visual Studio 2012 onwards this is very much a recommended update.
Some C++ 14 features (e.g. binary literals and digit separators) are also now supported if the -A(C++2014) option is active. Details of the major changes included in the patch are available at http://www.gimpel.com/html/pub90/read90.txt, from which the relevant extracts are reproduced below:
* This patch contains significantly enhanced support for MISRA
C3 (MISRA C 2012). A number of new messages to support MISRA
C3 have been added and the au-misra3.lnt author file has been
updated accordingly. We now provide some level of support
for all but 3 of the decidable rules and 4 of the undecidable
rules, with full support being provided for the vast majority
of the rules.
* We have broken out the 1960/1963 diagnostics (used to support
MISRA C++) into individual messages to provide a greater level
of control and flexibility, especially with regards to message
suppression. The 1960/1963 messages will continue to be
supported for backwards compatibility. A new author file,
au-misra-cpp-alt.lnt, can be used to take advantage of the
new messages in place of the 1960/1963 messages.
* We have improved support for MISRA C 2004, namely with regards
to rules #8.8, #6.2, and #8.9.
* We have improved support for MISRA C++, namely with regards to
rules #7-3-1, #9-6-2, and #9-6-4,
* We now provide significantly improved support for VS2012
through an updated co-msc110.lnt file, available on our
* Patch 9.00L introduces support for range-based for statements,
the 'final' class specifier, standard layout types, improved
handling of null pointer constants, significantly improved
handling of C++11 core language features used in Visual Studio
2012 headers. As with other C++ 2011 features, these are
available using the option: -A(C++2011).
* We now support binary literals and digit separators from
C++14. These features are available using the option:
* We now support the use of message numbers and patterns with
the +efreeze/-efreeze and ++efreeze options. For example,
++efreeze(534) will prevent later-appearing options from
suppressing message 534 without affecting the frozen status
of other messages.
* We now support C11's _Static_assert (when using -A(C2011)).
* The Program Info facility now includes flags for indicating
when a function has been declared with the final or override
specifiers and when a class has been declared with final.
* Multiple '-deprecate()' options can now be used to combine
deprecation messages. Such joined messages appear separated
by commas. For example:
-deprecate(function, printf, Directive #2SFH)
-deprecate(function, printf, Recommendation #LCD1C)
would result in
Warning 586: variable 'printf' is deprecated. Directive
#2SFH, Recommendation #LCD1C
whenever 'printf()' is called.
We have decided to disable strong type deduction as it was
responsible for incorrect type deduction in certain cases that did
not involve strong types. This feature will be revisited in a
Full details of the bugfixes also included in the patch (the contents are too long to list here!) are available at http://www.gimpel.com/html/pub90/bugfix90.txt.
Note that from our own experience running beta versions of this update some additional suppression directives for warnings 1509 and 1510 may be required to prevent unnecessary warnings being generated by classes derived from those within frameworks such as ATL and WTL.
We are in the process of updating our own indirect files to include appropriate suppression directives, but if you find you need assistance with specific occurances (or have suppression directives you think we should include in our files) please let us know.
As the update also adds quite a few new PC-lint messages we will also be updating the PC-lint message database installed with the next Visual Lint build (18.104.22.168).