- PVS-Studio 5.04 (May 14, 2013)
- PVS-Studio 5.03 (April 16, 2013)
- PVS-Studio 5.02 (March 6, 2013)
- PVS-Studio 5.01 (February 13, 2013)
- PVS-Studio 5.00 (January 31, 2013)
- Release history for old versions
PVS-Studio 5.04 (May 14, 2013)
- Support has been implemented for C++Builder XE4. Now PVS-Studio supports the following versions of C++Builder: XE4, XE3 Update 1, XE2, XE, 2010, 2009.
- New diagnostic – V669. The argument is a non-constant reference. The analyzer is unable to determine the position at which this argument is being modified. It is possible that the function contains an error.
- New diagnostic – V670. An uninitialized class member is used to initialize another member. Remember that members are initialized in the order of their declarations inside a class.
- New diagnostic – V671. It is possible that the 'swap' function interchanges a variable with itself.
- New diagnostic – V672. There is probably no need in creating a new variable here. One of the function's arguments possesses the same name and this argument is a reference.
- New diagnostic – V128. A variable of the memsize type is read from a stream. Consider verifying the compatibility of 32 and 64 bit versions of the application in the context of a stored data.
- New diagnostic – V813. Decreased performance. The argument should probably be rendered as a constant pointer/reference.
- New diagnostic – V2009. Consider passing the 'Foo' argument as a constant pointer/reference.
PVS-Studio 5.03 (April 16, 2013)
- Enhanced analysis/interface performance when checking large projects and generating a large number of diagnostic messages (the total number of unfiltered messages).
- Fixed the issue with incorrect integration of the PVS-Studio plugin into the C++Builder 2009/2010/XE environments after installation.
- Fixed the bug with the trial-mode.
- The analyzer can now be set to generate relative paths to source files in its log files.
- The analyzer now supports direct integration into the MSBuild build system.
- Integrated Help Language option added to Customer's Settings page. The setting allows you to select a language to be used for integrated help on the diagnostic messages (a click to the message error code in PVS-Studio output window) and online documentation (the PVS-Studio -> Help -> Open PVS-Studio Documentation (html, online) menu command), which are also available at our site. This setting will not change the language of IDE plug-in's interface and messages produced by the analyzer.
- Fix for Command line analysis mode in Visual Studio 2012 in the case of project background loading.
- New diagnostic - V665. Possibly, the usage of '#pragma warning(default: X)' is incorrect in this context. The '#pragma warning(push/pop)' should be used instead.
- New diagnostic - V666. Consider inspecting NN argument of the function 'Foo'. It is possible that the value does not correspond with the length of a string which was passed with the YY argument.
- New diagnostic - V667. The 'throw' operator does not possess any arguments and is not situated within the 'catch' block.
- New diagnostic - V668. There is no sense in testing the pointer against null, as the memory was allocated using the 'new' operator. The exception will be generated in the case of memory allocation error.
- New diagnostic -V812. Decreased performance. Ineffective use of the 'count' function. It can possibly be replaced by the call to the 'find' function.
PVS-Studio 5.02 (March 6, 2013)
- Incorrect navigation in C++Builder modules that contain several header/source files was fixed.
- The option for inserting user-specified comments while performing false alarm mark-ups (for example, to provide the automatic documentation generation systems with appropriate descriptions) was implemented.
- An issue of incorrectly starting up a C++ preprocessor for some of the files utilizing precompiled headers was fixed.
- New diagnostic - V663. Infinite loop is possible. The 'cin.eof()' condition is insufficient to break from the loop. Consider adding the 'cin.fail()' function call to the conditional expression.
- New diagnostic - V664. The pointer is being dereferenced on the initialization list before it is verified against null inside the body of the constructor function.
- New diagnostic - V811. Decreased performance. Excessive type casting: string -> char * -> string.
PVS-Studio 5.01 (February 13, 2013)
- Support has been implemented for several previous versions of C++Builder. Now PVS-Studio supports the following versions of C++Builder: XE3 Update 1, XE2, XE, 2010, 2009.
- A bug in C++Builder version with incremental analysis starting-up incorrectly in several situations was fixed.
- Occasional incorrect placement of false alarm markings for C++Builder version was fixed.
- Incorrect display of localized filenames containing regional-specific characters in C++Builder version was fixed.
- An issue with opening source files during diagnostic message navigation in C++Builder version was resolved.
- The issue was fixed of system includes paths being resolved incompletely when starting the preprocessor for the analyzer in C++ Builder versions.
- New diagnostic - V661. A suspicious expression 'A[B < C]'. Probably meant 'A[B] < C'.
- New diagnostic - V662. Consider inspecting the loop expression. Different containers are utilized for setting up initial and final values of the iterator.
PVS-Studio 5.00 (January 31, 2013)
- Support for the integration to Embarcadero RAD Studio, or Embarcadero C++ Builder to be more precise, was added! As of this moment, PVS-Studio diagnostics capabilities are available to the users of C++ Builder. While in the past PVS-Studio could be conveniently utilized only from within Visual Studio environment, but now C++ developers who choses Embarcadero products will be able to fully utilize PVS-Studio static analyzer as well. Presently, the supported versions are XE2 and XE3, including the XE3 Update 1 with 64-bit C++ compiler.
- Microsoft Design Language (formerly known as Metro Language) C++/CX Windows 8 Store (WinRT) projects on x86/ARM platforms and Windows Phone 8 projects support was implemented.
- A fix for the users of Clang-preprocessor in Visual Studio version was implemented. Previously it was impossible to use Clang as a preprocessor while analyzing projects utilizing the Boost library because of the preprocessing errors. Now these issues were resolved. This significantly decreased the time it takes to analyze Boost projects with the help of Clang preprocessor.
- The obsolete Viva64 options page was removed.
- V004 message text was modified to provide a more correct description.
- New diagnostic - V810. Decreased performance. The 'A' function was called several times with identical arguments. The result should possibly be saved to a temporary variable, which then could be used while calling the 'B' function.
- New diagnostic - V2008. Cyclomatic complexity: NN. Consider refactoring the 'Foo' function.
- New diagnostic - V657. It's odd that this function always returns one and the same value of NN.
- New diagnostic - V658. A value is being subtracted from the unsigned variable. This can result in an overflow. In such a case, the comparison operation can potentially behave unexpectedly.
- New diagnostic - V659. Declarations of functions with 'Foo' name differ in the 'const' keyword only, but the bodies of these functions have different composition. This is suspicious and can possibly be an error.
- New diagnostic - V660. The program contains an unused label and a function call: 'CC:AA()'. It's possible that the following was intended: 'CC::AA()'.
Release history for old versions
Please read release history for old versions here.