Visual Lint 8.0 has been released
Saturday 27th March, 2021
The first public build of Visual Lint 8.0 has just been uploaded to our website. As of today, Visual Lint 8.0 replaces Visual Lint 7.0 as the current supported Visual Lint version.
As such Visual Lint 8.0 licences (as well as upgrades for Visual Lint 6.x and 7.x* per user licences) will shortly become are now available in our online store.
* Licences for Visual Lint 1.x through 5.x can be upgraded manually - please contact us for details.
Customers with active Visual Lint 7.x priority support subscriptions should already have received updated licence keys for the new version.
Visual Lint floating and site licence subscription customers have the option of continuing with Visual Lint 7.0 until their next renewal or updating to Visual Lint 8.0.
In addition, all customers who have purchased per-user or per-server Visual Lint licences since 1st January 2021 are also eligible to receive new Visual Lint 8.0 compatible licence keys.
If any of the above applies and you need a licence key compatible with Visual Lint 8.0 please contact us for details, quoting your order number and licence key.
Among the many changes included in Visual Lint 8.0 is the addition of support for Clang-Tidy - an open source C++ analysis tool from the LLVM Project which is notable for its ability to automatically correct many of the issues it finds.

You can read more about the integration of Clang-Tidy into Visual Lint in the blogpost Clang-Tidying up the house.
The following changes are included in Visual Lint 8.0:
-
Projects whose physical location is defined using system environment variables within Visual Studio, AVR Studio 5.0 or Atmel Studio solutions (
.sln
,.avrsln
or.atsln
) files can now be loaded correctly. -
Improved support for Eclipse project/build variables. In particular, variables of the form
${workspace_loc:/<projectname>/<resource_path>}
and${workspace_loc:/${ProjectName}/<resource_path>}
should now be resolved correctly, even if the project is physically located outside of the workspace folder and<resource_path>
is a linked resource. -
Updated the values of
_MSC_VER
and_MSC_FULL_VER
in the Visual Studio 2017 PC-lint Plus compiler indirect fileco-rb-vs2017.lnt
to support VS2017 v15.9.34. -
Updated the values of
_MSC_VER
and_MSC_FULL_VER
in the Visual Studio 2019 PC-lint Plus compiler indirect fileco-rb-vs2019.lnt
to support VS2019 v16.9.2. -
Added support for the Clang-Tidy analysis tool. Clang-Tidy is an open source C++ analysis tool from the LLVM Project which is especially notable for its ability to automatically fix some of the analysis issues it detects.
-
Updated the PC-lint Plus message database to reflect changes in PC-lint Plus 1.4.
-
Added PC-lint Plus library indirect files
lib-rb-stl.lnt
andlib-rb-boost.lnt
. -
The PC-lint Plus library indirect file
lib-rb-win32.lnt
no longer includes tuning directives for the ATL, WTL and MFC libraries - instead, dedicated indirect files for these libraries (lib-rb-atl.lnt
,lib-rb-wtl.lnt
andlib-rb-mfc.lnt
respectively) are now supplied.
If you analyse ATL, WTL or MFC code your PC-lint Plus analysis configuration will need to be updated accordingly. The implementations oflib-rb-win32.lnt
for PC-lint 8.0 and 9.0 are unaffected. -
Added a "Exclude files matching these wildcard masks" option to the Advanced Analysis Options Dialog. This can be used to (for example) automatically exclude generated files such as Qt
moc_*.cpp
files from analysis. Multiple masks can be specified by delimiting them with semicolons. -
Revised the
.vlconfig
file format. The changes are backward compatible, so old format files can still be read and will be updated when saved. -
Analysis Configuration files now include the name and major/minor version of the product which wrote them. Note that the full build version is not included, as that could cause unnecessary diffs in the resultant
.vlconfig
files. -
Added the ability to override the preprocessor symbol and include folder properties of arbitrary project types using the Project Properties Dialog. This allows the analysis configuration of a project to be further customised (e.g. by injecting additional preprocessor symbols) without affecting the build environment. If the properties of the project are overridden in this way, a
<projectfilename>.vlproj
file will be written alongside the project file to store the overridden properties. [Visual Lint Professional, Enterprise and Build Server Editions]` -
Various changes to the implementation of options.
-
The "Auto" value of the Maximum background analysis tasks option now allocates threads at 75% of the CPU logical core count.`
-
Manual analysis can now optionally automatically fix some detected issues. To enable this option, select Clang-Tidy as the active analysis tool and check the "Apply suggested fixes" option in the Clang-Tidy Analysis Configuration Dialog. [Visual Lint Enterprise and Build Server Editions]`
-
Added the Clang-Tidy Analysis Configuration Dialog, which contains a variety of options for configuring Clang-Tidy analysis. For example, the dialog allows header and line filters to be defined and includes options to define which Clang-Tidy checks are active.
-
The Issue Documentation Display can now show documentation for CppCheck and Clang-Tidy issues.
-
Replaced the TeeChart charts in the Analysis History and Results Displays with JqPlot (Javascript) equivalents as already used in HTML analysis reports. As part of this change the "Stacked Bar Chart" view has been removed from the Analysis History Display.
-
The Project Properties Dialog (and comments within generated project indirect ("
project.lnt
") files) now explicitly shows any project variables within the system include path unless the "Use VS2012/VS2010 system headers for compatibility with PC-lint 9.00L or earlier" option on the "Analysis Tool" Options page is active. -
The Property List Dialog now filters out blank lines when displaying include folder paths etc.
-
The Project Variables Dialog now displays IAR Embedded Workbench format variables (e.g.
$PROJ_DIR$
) correctly. -
The Analysis Results Display "Raw Analysis Results" view now attempts to normalise newlines for display purposes. This affects the Clang-Tidy analysis tool specifically, as it can generate output with a mixture of line endings.
-
The CppCheck Analysis Configuration Dialog "Checks" control is now an MRU combo box.
-
The Send Feedback Dialog is now modeless.
-
The Active Analysis Tool Dialog is now resizable and its contents sortable. In addition the meaning of the "Status" column has been made clearer.
-
The Advanced Analysis Options Dialog is now resizable.
-
The Configuration Wizard is now resizable.
-
The CppCheck Analysis Configuration Dialog is now resizable.
-
The Options Dialog is now resizable.
-
Display filters are now host and toolchain independent.
-
Moved code editor marker options from the "Displays" Options page to the "Editor" Options page.
-
Removed the "Auto-show the Analysis Results Display when analysis results are available" option from the "Displays" Options page.
-
Moved the "Check for new blogposts" option from the "Displays" Options page to the "Updates" Options page.
-
When a solution/workspace is closed, the displays are now cleared first and (in VisualLintGui only) a "Solution Closed" message written to the Status Bar when the process is complete.
-
The "Insert Directive" command on the Analysis Results Display context menu can now also be used to suppress Clang-Tidy analysis issues.
-
The "Lookup Meaning" command on the Analysis Results Display context menu is now available when analysing with CppCheck or Clang-Tidy.
-
Added an "Apply Fixes" command to the Analysis Status Display context menu. This command applies all fixes identified by Clang-Tidy to the selected implementation files.
-
Added a "Troubleshooting | View Fixes" command to the Analysis Status Display context menu. This command displays the contents of the Clang-Tidy
.fixes
file (if any) corresponding to the selected implementation file. These are YAML files associated with the clang-apply-replacements tool and which contain details of the issues Clang-Tidy has identified - and any changes it identified to fix them. -
Fixed a bug in the expansion of project variables in multi-field strings where more than one field expands to the same variable. This manifested in Visual Studio 2019 where the include path "
$(VC_IncludePath);$(WindowsSDK_IncludePath)
" only expanded the first instance of$(WindowsSdkDir)
. -
Fixed a bug which could affect the parsing of VisualDSP project files in the 64 bit version of VisualLintConsole.
-
Fixed a crash which which could occur while generating a Clang-Tidy command line for a standalone source file which is not part of any project.
-
Fixed a bug in the Analysis Results Display charts when rendering summaries of issues with embedded quotes in the issue title.
-
Fixed a bug in the Analysis Statistics Display which could cause some issues to be incorrectly displayed with the wrong issue category. The bug was identified while adding support for Clang-Tidy to the display.
-
Fixed a bug in the Analysis Status Display "Delete Analysis Results" context menu command which could cause an analysis task to be created for a file which was excluded from background analysis.
-
Fixed a bug which could prevent affected source files from being marked as stale when a header file was changed. The bug was identified while adding support for Clang-Tidy.
-
Fixed a bug which could cause uncommitted changes in the Property List Dialog to be lost if the "Expand project variables" checkbox was checked.
-
Fixed a bug in the x64 build of the Eclipse plugin.
-
Fixed a minor bug in the "Command Line" Options page.
-
Parsing operations on MSBuild project files can now be aborted part way through. This should make certain operations (e.g. changing configurations immediately after loading a solution) more responsive.
-
The Display Filter will no longer automatically attempt to suppress instances of issue 974 (
note -- worst case stack usage...
) if the active analysis tool is not either PC-lint or PC-lint Plus. -
The Solution/Project Analysis Configuration Dialog now resizes correctly.
-
Corrected the tab order of the Solution/Project Analysis Configuration Dialog.