Products, the Universe and Everything

The Riverblade Developer's Blog

Beth demonstrating Visual Lint at the ACCU Conference 2008  Anna taking part in a discussion panel at the European Software Conference 2007 

Welcome to our developer's blog. We hope that this forum provides an insight into us, our products and how we develop them. Please feel free to write to us if you have anything to add to any of the posts here.

Current Entries | Archives |

PC-lint 9.00L has been released
Wednesday, October 29, 2014

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, 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
            patches page.

          * 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
          future release.

Full details of the bugfixes also included in the patch (the contents are too long to list here!) are available at

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 (

Posted by Anna at 17:20 | Get Link


Visual Lint has been released
Monday, October 6, 2014

This is a maintenance update for Visual Lint 4.5. The following changes are included:

  • Fixed a bug which could cause the Visual Studio plug-in to miss changes to the active project configuration.
  • Added a status message to the Visual Studio plug-in to identify when the active configuration has changed.
  • Fixed a bug which could cause system include folders to be read incorrectly from Visual Studio 2012/13 projects which use the Intel C++ Compiler.
  • Fixed a bug in VisualLintGui which was preventing accelerators from being translated correctly by the main frame window when no MDI windows were open.
  • Various updates to the helpfile.

Posted by Anna at 11:29 | Get Link